<SEC-DOCUMENT>0001376474-25-000751.txt : 20250815
<SEC-HEADER>0001376474-25-000751.hdr.sgml : 20250815
<ACCEPTANCE-DATETIME>20250815075434
ACCESSION NUMBER:		0001376474-25-000751
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		100
CONFORMED PERIOD OF REPORT:	20250531
FILED AS OF DATE:		20250815
DATE AS OF CHANGE:		20250815

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			TAYLOR DEVICES, INC.
		CENTRAL INDEX KEY:			0000096536
		STANDARD INDUSTRIAL CLASSIFICATION:	GENERAL INDUSTRIAL MACHINERY & EQUIPMENT, NEC [3569]
		ORGANIZATION NAME:           	06 Technology
		EIN:				160797789
		STATE OF INCORPORATION:			NY
		FISCAL YEAR END:			0531

	FILING VALUES:
		FORM TYPE:		10-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	000-03498
		FILM NUMBER:		251222442

	BUSINESS ADDRESS:	
		STREET 1:		90 TAYLOR DR
		CITY:			NORTH TONAWANDA
		STATE:			NY
		ZIP:			14120
		BUSINESS PHONE:		7166940800

	MAIL ADDRESS:	
		STREET 1:		90 TAYLOR DR
		CITY:			N TONAWANDA
		STATE:			NY
		ZIP:			14120

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	TAYLOR DEVICES INC
		DATE OF NAME CHANGE:	19920703
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>tayd-20250531_10k.htm
<DESCRIPTION>TAYLOR DEVICES, INC. - FORM 10-K SEC FILING
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fil="http://taylordevices.com/20250531" xmlns:dei="http://xbrl.sec.gov/dei/2025" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2024-01-31" xmlns:srt="http://fasb.org/srt/2025" xmlns:us-gaap="http://fasb.org/us-gaap/2025" xmlns:i="http://www.xbrl.org/2003/instance" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA3WEKVX]. www.edgarsuite.com -->
<title>TAYLOR DEVICES, INC. - Form 10-K SEC filing</title>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
</head>
<body>
<div style="display:none">
<ix:header>
<ix:hidden>
<ix:nonNumeric name="dei:EntityCentralIndexKey" contextRef="D240601_250531" id="fact1">0000096536</ix:nonNumeric>
<ix:nonNumeric name="dei:AmendmentFlag" contextRef="D240601_250531" id="fact2">false</ix:nonNumeric>
<ix:nonNumeric name="dei:DocumentFiscalYearFocus" contextRef="D240601_250531" id="fact3">2025</ix:nonNumeric>
<ix:nonNumeric name="dei:DocumentFiscalPeriodFocus" contextRef="D240601_250531" id="fact4">FY</ix:nonNumeric>
</ix:hidden>
<ix:references>
	<link:schemaRef xlink:type="simple" xlink:href="tayd-20250531.xsd"/>
</ix:references>
<ix:resources>
<i:unit id="USD">
<i:measure>iso4217:USD</i:measure>
</i:unit>
<i:unit id="Shares">
<i:measure>xbrli:shares</i:measure>
</i:unit>
<i:unit id="UsdPerShare">
<i:divide>
<i:unitNumerator>
<i:measure>iso4217:USD</i:measure>
</i:unitNumerator>
<i:unitDenominator>
<i:measure>xbrli:shares</i:measure>
</i:unitDenominator>
</i:divide>
</i:unit>
<i:unit id="Pure">
<i:measure>xbrli:pure</i:measure>
</i:unit>
<i:context id="D240601_250531">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_StClStock-CommonClassA">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D240601_250531_StClStock-SeriesAPrefStock">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I241130">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
</i:entity>
<i:period>
<i:instant>2024-11-30</i:instant>
</i:period>
</i:context>
<i:context id="I240815">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
</i:entity>
<i:period>
<i:instant>2024-08-15</i:instant>
</i:period>
</i:context>
<i:context id="I240531">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I240531_StEqComps-CommonStock">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I230531_StEqComps-CommonStock">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2023-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_StEqComps-CommonStock">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D230601_240531_StEqComps-CommonStock">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_StEqComps-CommonStock">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_StEqComps-AddPaidInCap">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I230531_StEqComps-AddPaidInCap">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2023-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_StEqComps-AddPaidInCap">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D230601_240531_StEqComps-AddPaidInCap">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_StEqComps-AddPaidInCap">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_StEqComps-RetainedEarnings">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I230531_StEqComps-RetainedEarnings">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2023-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_StEqComps-RetainedEarnings">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D230601_240531_StEqComps-RetainedEarnings">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_StEqComps-RetainedEarnings">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_StEqComps-TreasuryStockCommon">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I230531_StEqComps-TreasuryStockCommon">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2023-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_StEqComps-TreasuryStockCommon">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D230601_240531_StEqComps-TreasuryStockCommon">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_StEqComps-TreasuryStockCommon">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I230531">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
</i:entity>
<i:period>
<i:instant>2023-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_MajCust-Customers">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fil:CustomersMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_MajCust-Customers">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fil:CustomersMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_MajCust-CustomersRetention">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fil:CustomersRetentionMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_MajCust-CustomersRetention">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fil:CustomersRetentionMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_PublicUtilitiesInventory-PublicUtilitiesInventoryRawMaterials">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">us-gaap:PublicUtilitiesInventoryRawMaterialsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_PublicUtilitiesInventory-PublicUtilitiesInventoryRawMaterials">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">us-gaap:PublicUtilitiesInventoryRawMaterialsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_PublicUtilitiesInventory-WorkInProcess">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">fil:WorkInProcessMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_PublicUtilitiesInventory-WorkInProcess">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">fil:WorkInProcessMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_PublicUtilitiesInventory-FinishedGoods">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">fil:FinishedGoodsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_PublicUtilitiesInventory-FinishedGoods">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">fil:FinishedGoodsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_PpeByType-Land">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_PpeByType-Land">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_PpeByType-BuildingImprovements">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_PpeByType-BuildingImprovements">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_PpeByType-MachineryAndEquipment">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_PpeByType-MachineryAndEquipment">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_PpeByType-FurnitureAndFixtures">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_PpeByType-FurnitureAndFixtures">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_PpeByType-Vehicles">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:VehiclesMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_PpeByType-Vehicles">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:VehiclesMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_PpeByType-LandImprovements">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_PpeByType-LandImprovements">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_FvByLiabClass-CustomerDeposits">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:CustomerDepositsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_FvByLiabClass-CustomerDeposits">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:CustomerDepositsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_FvByLiabClass-PersonnelCosts">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:PersonnelCostsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_FvByLiabClass-PersonnelCosts">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:PersonnelCostsMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I250531_FvByLiabClass-Other">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:OtherMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_FvByLiabClass-Other">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:OtherMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_StBusnSeg-Structural">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:StructuralMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D230601_240531_StBusnSeg-Structural">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:StructuralMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D240601_250531_StBusnSeg-AerospaceDefense">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:AerospaceDefenseMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D230601_240531_StBusnSeg-AerospaceDefense">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:AerospaceDefenseMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D240601_250531_StBusnSeg-Industrial">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:IndustrialMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D230601_240531_StBusnSeg-Industrial">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:IndustrialMember</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N90110001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N90110001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N100111001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N100111001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N110112001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N110112001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N120113001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N120113001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N130114001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N130114001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N160117001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N160117001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N190120001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N190120001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N20012100Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N20012100Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N30013100">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N30013100Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N30013100">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N30013100Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N43014400">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N43014400Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N43014400">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N43014400Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N46014700Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N46014700Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N9014700Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2024-06-01</i:startDate>
<i:endDate>2025-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N9014700Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2025-05-31</i:instant>
</i:period>
</i:context>
<i:context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N90110001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N90110001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N100111001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N100111001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N110112001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N110112001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N120113001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N120113001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N130114001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N130114001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N160117001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N160117001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N190120001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N190120001Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N20012100Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N20012100Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N46014700Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N46014700Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<i:context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N9014700Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:instant>2024-05-31</i:instant>
</i:period>
</i:context>
<i:context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700">
<i:entity>
<i:identifier scheme="http://www.sec.gov/CIK">0000096536</i:identifier>
<i:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N9014700Member</xbrldi:explicitMember></i:segment>
</i:entity>
<i:period>
<i:startDate>2023-06-01</i:startDate>
<i:endDate>2024-05-31</i:endDate>
</i:period>
</i:context>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact5" toRefs="Note2"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact6" toRefs="Note2"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact7" toRefs="Note3"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact8" toRefs="Note3"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact9" toRefs="Note4"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact10" toRefs="Note4"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact11" toRefs="Note5"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact12" toRefs="Note5"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact13" toRefs="Note6"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact14" toRefs="Note6"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact15" toRefs="Note10"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact16" toRefs="Note10"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact17" toRefs="Note8"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact18" toRefs="Note8"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact19" toRefs="Note4"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact20" toRefs="Note4"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact21" toRefs="Note9"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact22" toRefs="Note9"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact23" toRefs="Note10"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact24" toRefs="Note10"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact25" toRefs="Note11"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact26" toRefs="Note11"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact27" toRefs="Note11"/>
<ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="fact28" toRefs="Note11"/>
</ix:resources>
</ix:header>
</div>
<div style="margin-left:54pt;width:522pt"><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>UNITED STATES</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>SECURITIES AND EXCHANGE COMMISSION</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Washington, D.C. 20549</b><br/></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>F O R M <ix:nonNumeric name="dei:DocumentType" contextRef="D240601_250531" escape="true" id="ixv-7447">10-K</ix:nonNumeric></b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><ix:nonNumeric name="dei:DocumentAnnualReport" contextRef="D240601_250531" format="ixt-sec:boolballotbox" id="ixv-7448">&#9746;</ix:nonNumeric><b> ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">For the fiscal year ended <ix:nonNumeric name="dei:DocumentPeriodEndDate" contextRef="D240601_250531" format="ixt:date-monthname-day-year-en" id="ixv-7449"><ix:nonNumeric name="dei:CurrentFiscalYearEndDate" contextRef="D240601_250531" format="ixt:date-monthname-day-en" id="ixv-7450">May 31</ix:nonNumeric>, 2025</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">or</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><b><ix:nonNumeric name="dei:DocumentTransitionReport" contextRef="D240601_250531" format="ixt-sec:boolballotbox" id="ixv-7451">&#9744;</ix:nonNumeric> TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">For the transition period from __________ to __________</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:216pt;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Commission file number <ix:nonNumeric name="dei:EntityFileNumber" contextRef="D240601_250531" escape="true" id="ixv-7452">000-3498</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="dei:EntityRegistrantName" contextRef="D240601_250531" escape="true" id="ixv-7453">TAYLOR DEVICES, INC.</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">(Exact name of registrant as specified in its charter)</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:284.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="border-bottom:1px solid #000000"><ix:nonNumeric name="dei:EntityIncorporationStateCountryCode" contextRef="D240601_250531" format="ixt-sec:stateprovnameen" id="ixv-7454">New York</ix:nonNumeric></span></p>
</td><td valign="top" style="width:194.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="border-bottom:1px solid #000000"><ix:nonNumeric name="dei:EntityTaxIdentificationNumber" contextRef="D240601_250531" escape="true" id="ixv-7455">16-0797789</ix:nonNumeric></span></p>
</td></tr>
<tr><td valign="top" style="width:284.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">(State or other jurisdiction of</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"> incorporation or organization)</p>
</td><td valign="top" style="width:194.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">(I.R.S. Employer</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"> Identification No.)</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr style="height:11.65pt"><td valign="top" style="width:293.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="border-bottom:1px solid #000000"><ix:nonNumeric name="dei:EntityAddressAddressLine1" contextRef="D240601_250531" escape="true" id="ixv-7456">90 Taylor Drive</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressCityOrTown" contextRef="D240601_250531" escape="true" id="ixv-7457">North Tonawanda</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressStateOrProvince" contextRef="D240601_250531" format="ixt-sec:stateprovnameen" id="ixv-7458">New York</ix:nonNumeric> </span></p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="border-bottom:1px solid #000000"><ix:nonNumeric name="dei:EntityAddressPostalZipCode" contextRef="D240601_250531" escape="true" id="ixv-7459">14120</ix:nonNumeric></span></p>
</td></tr>
<tr style="height:11.6pt"><td valign="top" style="width:293.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">(<ix:nonNumeric name="dei:EntityAddressAddressDescription" contextRef="D240601_250531" escape="true" id="ixv-7460">Address of principal executive offices</ix:nonNumeric>)</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">(Zip Code)</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:478.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><ix:nonNumeric name="dei:PhoneFaxNumberDescription" contextRef="D240601_250531" escape="true" id="ixv-7461">Registrant's telephone number, including area code</ix:nonNumeric> &#160;&#160;<span style="border-bottom:1px solid #000000">(<ix:nonNumeric name="dei:CityAreaCode" contextRef="D240601_250531" escape="true" id="ixv-7462">716</ix:nonNumeric>) <ix:nonNumeric name="dei:LocalPhoneNumber" contextRef="D240601_250531" escape="true" id="ixv-7463">694-0800</ix:nonNumeric></span></p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Securities registered pursuant to Section 12(b) of the Act:</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:153.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="border-bottom:1px solid #000000">Title of each class</span></p>
</td><td valign="top" style="width:108.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="border-bottom:1px solid #000000">Trading Symbol</span></p>
</td><td valign="top" style="width:195.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="border-bottom:1px solid #000000">Name of each exchange on which registered</span></p>
</td></tr>
<tr><td valign="top" style="width:153.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="dei:Security12bTitle" contextRef="D240601_250531_StClStock-CommonClassA" escape="true" id="ixv-7464">Common Stock, $.025 par value per share</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="dei:Security12bTitle" contextRef="D240601_250531_StClStock-SeriesAPrefStock" escape="true" id="ixv-7465">Preferred Stock Purchase Rights</ix:nonNumeric></p>
</td><td valign="top" style="width:108.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="dei:TradingSymbol" contextRef="D240601_250531_StClStock-CommonClassA" escape="true" id="ixv-7466">TAYD</ix:nonNumeric><br/><br/>N/A</p>
</td><td valign="top" style="width:195.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">The <ix:nonNumeric name="dei:SecurityExchangeName" contextRef="D240601_250531_StClStock-CommonClassA" format="ixt-sec:exchnameen" id="ixv-7467">Nasdaq</ix:nonNumeric> Stock Market LLC<br/><br/>The Nasdaq Stock Market LLC</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">Securities registered pursuant to Section 12(g) of the Act: None</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"> &#160;&#9744; Yes &#160;&#160;&#160;&#9746; <ix:nonNumeric name="dei:EntityWellKnownSeasonedIssuer" contextRef="D240601_250531" id="ixv-7468">No</ix:nonNumeric></p>
<p style="font:6pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act. &#160;&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#9744; Yes &#160;&#160;&#160;&#9746; <ix:nonNumeric name="dei:EntityVoluntaryFilers" contextRef="D240601_250531" id="ixv-7469">No</ix:nonNumeric></p>
<p style="font:6pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"> &#160;&#160;&#160;&#160;&#9746; <ix:nonNumeric name="dei:EntityCurrentReportingStatus" contextRef="D240601_250531" id="ixv-7470">Yes</ix:nonNumeric> &#160;&#160;&#160;&#9744; No</p>
<p style="font:6pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (&#167;232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#9746; <ix:nonNumeric name="dei:EntityInteractiveDataCurrent" contextRef="D240601_250531" id="ixv-7471">Yes</ix:nonNumeric> &#160;&#160;&#160;&#9744; No</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company or an emerging growth company. &#160;See the definitions of "large accelerated filer," "accelerated filer," "smaller reporting company" and "emerging growth company" in Rule 12b-2 of the Exchange Act.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr style="height:15.75pt"><td valign="top" style="width:347.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Large accelerated filer &#9744;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Accelerated filer &#9744;</p>
</td></tr>
<tr><td valign="top" style="width:347.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><ix:nonNumeric name="dei:EntityFilerCategory" contextRef="D240601_250531" format="ixt-sec:entityfilercategoryen" id="ixv-7472">Non-accelerated Filer</ix:nonNumeric> &#9746;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Smaller reporting company <ix:nonNumeric name="dei:EntitySmallBusiness" contextRef="D240601_250531" format="ixt-sec:boolballotbox" id="ixv-7473">&#9746;</ix:nonNumeric></p>
</td></tr>
<tr><td valign="top" style="width:347.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Emerging growth company <ix:nonNumeric name="dei:EntityEmergingGrowthCompany" contextRef="D240601_250531" format="ixt-sec:boolballotbox" id="ixv-7474">&#9744;</ix:nonNumeric></p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">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. &#160;&#9744;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"> &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="color:#221E1F">Indicate by check mark whether the registrant has filed a report on and attestation to its management&#8217;s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report.&#160;&#160;&#160;&#160;&#160;</span><ix:nonNumeric name="dei:IcfrAuditorAttestationFlag" contextRef="D240601_250531" format="ixt-sec:boolballotbox" id="ixv-7475">&#9744;</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="color:#221E1F">If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements.&#160;&#160;&#160;&#160;&#160;</span><ix:nonNumeric name="dei:DocumentFinStmtErrorCorrectionFlag" contextRef="D240601_250531" format="ixt-sec:boolballotbox" id="ixv-7476">&#9744;</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="color:#221E1F">Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of incentive-based compensation received by any of the registrant&#8217;s executive officers during the relevant recovery period pursuant to </span>&#167;<span style="color:#221E1F">240.10D-1(b).&#160;&#160;&#160;&#160;&#160;</span>&#9744;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Act). &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ix:nonNumeric name="dei:EntityShellCompany" contextRef="D240601_250531" format="ixt-sec:boolballotbox" id="ixv-7477">&#9744;</ix:nonNumeric> Yes &#160;&#160;&#160;&#9746; No</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, on November 29, 2024, the last business day of the registrant's most recently completed second fiscal quarter, is $<ix:nonFraction name="dei:EntityPublicFloat" contextRef="I241130" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7478">150,789,000</ix:nonFraction>.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">The number of shares outstanding of each of the registrant's classes of common stock as of August 15, 2025 is <ix:nonFraction name="dei:EntityCommonStockSharesOutstanding" contextRef="I240815" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7479">3,147,193</ix:nonFraction>.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">TAYLOR DEVICES, INC.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">DOCUMENTS INCORPORATED BY REFERENCE</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:329.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="border-bottom:1px solid #000000">Documents</span></p>
</td><td valign="top" style="width:149.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><span style="border-bottom:1px solid #000000">Form 10-K Reference</span></p>
</td></tr>
<tr><td valign="top" style="width:329.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:149.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:329.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Portions of definitive Proxy Statement for Registrant&#8217;s 2025 Annual Meeting of Shareholders</p>
</td><td valign="top" style="width:149.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Part III, Items 10-14</p>
</td></tr>
<tr><td valign="top" style="width:329.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:149.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>FORM 10-K INDEX</b></p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><b>PART I</b></p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000;text-align:right"><b>PAGE</b></p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 1.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a1" title="Click to go to this topic in this filing." style="text-decoration:none">Business.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">4</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 1A.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a2" title="Click to go to this topic in this filing." style="text-decoration:none">Risk Factors.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">6</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 1B.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a3" title="Click to go to this topic in this filing." style="text-decoration:none">Unresolved Staff Comments.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">6</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 1C.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a4" title="Click to go to this topic in this filing." style="text-decoration:none">Cybersecurity.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">6</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 2.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a5" title="Click to go to this topic in this filing." style="text-decoration:none">Properties.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">7</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 3.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a6" title="Click to go to this topic in this filing." style="text-decoration:none">Legal Proceedings.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">7</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 4.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a7" title="Click to go to this topic in this filing." style="text-decoration:none">Mine Safety Disclosures.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">7</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><b>PART II</b></p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 5.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a8" title="Click to go to this topic in this filing." style="text-decoration:none">Market For Registrant's Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">8</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 6.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a9" title="Click to go to this topic in this filing." style="text-decoration:none">[Reserved].</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">8</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 7.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a10" title="Click to go to this topic in this filing." style="text-decoration:none">Management's Discussion and Analysis of Financial Condition and Results of Operations.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">8</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 7A.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a11" title="Click to go to this topic in this filing." style="text-decoration:none">Quantitative and Qualitative Disclosures About Market Risk.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">15</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 8.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a12" title="Click to go to this topic in this filing." style="text-decoration:none">Financial Statements and Supplementary Data.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">15</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 9.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a13" title="Click to go to this topic in this filing." style="text-decoration:none">Changes in and Disagreements With Accountants on Accounting and Financial Disclosure.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">15</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 9A.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a14" title="Click to go to this topic in this filing." style="text-decoration:none">Controls and Procedures.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">15</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 9B.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a15" title="Click to go to this topic in this filing." style="text-decoration:none">Other Information.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">16</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 9C.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a16" title="Click to go to this topic in this filing." style="text-decoration:none">Disclosure Regarding Foreign Jurisdictions that Prevent Inspections</a></b><a href="#a16" title="Click to go to this topic in this filing." style="text-decoration:none">.</a></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">16</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><b>PART III</b></p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 10.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a17" title="Click to go to this topic in this filing." style="text-decoration:none">Directors, Executive Officers and Corporate Governance.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">16</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 11.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a17" title="Click to go to this topic in this filing." style="text-decoration:none">Executive Compensation.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">16</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 12.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a17" title="Click to go to this topic in this filing." style="text-decoration:none">Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">16</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 13.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a17" title="Click to go to this topic in this filing." style="text-decoration:none">Certain Relationships and Related Transactions, and Director Independence.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">16</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 14.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a17" title="Click to go to this topic in this filing." style="text-decoration:none">Principal Accountant Fees and Services.</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">16</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><b>PART IV</b></p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 15.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a18" title="Click to go to this topic in this filing." style="text-decoration:none">Exhibits and Financial Statement Schedules</a></b>.</span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">17</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:1pt"><td valign="top" style="width:59.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">Item 16.</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a19" title="Click to go to this topic in this filing." style="text-decoration:none">Form 10-K Summary</a></b>.</span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">19</p>
</td></tr>
<tr style="height:1pt"><td colspan="2" valign="top" style="width:131.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:306pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000">&#160;</p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:1pt"><td colspan="3" valign="top" style="width:437.4pt"><p style="font:10pt Times New Roman;margin-top:2pt;margin-bottom:2pt;color:#000000"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><b><a href="#a20" title="Click to go to this topic in this filing." style="text-decoration:none">SIGNATURES</a></b></span></p>
</td><td valign="top" style="width:41.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">20</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">3</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;text-indent:36pt;margin-left:216pt;color:#000000"><span style="font-size:10pt"><b>PART I</b></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<a id="a1"></a><p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Item 1. &#160;Business.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Taylor Devices, Inc. (referred to herein as the &#8220;Company,&#8221; &#8220;we,&#8221; &#8220;us&#8221; or &#8220;our&#8221;) was incorporated in the State of New York on July 22, 1955 and is engaged in the design, development, manufacture and marketing of shock absorption, rate control, and energy storage devices for use in various types of machinery, equipment and structures. &#160;In addition to manufacturing and selling existing product lines, the Company continues to develop new and advanced technology products.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Principal Products</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company manufactures and sells a group of very similar products that have many different applications for customers. &#160;These similar products are included in one of nine categories, namely, Seismic Dampers, Fluidicshoks&#174;, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs, Custom Shock and Vibration Isolators, and Custom Actuators. &#160;Custom derivations of all of these products are designed and manufactured for many aerospace and defense applications. &#160;The following is a summary of the capabilities and applications for these products. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Seismic Dampers are designed to mitigate the effects of earthquakes on structures and represent a substantial portion of the Company&#8217;s sales. &#160;Fluidicshoks&#174; are small, extremely compact shock absorbers with up to 19,200 inch-pound capacities, produced in 12 standard sizes for primary use in the defense, aerospace and commercial industries. &#160;Crane and Industrial Buffers are larger versions of the Fluidicshoks&#174; with up to 10,890,000 inch-pound capacities, produced in more than 50 standard sizes for industrial applications on cranes and crane trolleys, truck docks, ladle and ingot cars, ore trolleys and train car stops. &#160;Self-Adjusting Shock Absorbers, which include versions of Fluidicshoks&#174; and crane and industrial buffers, automatically adjust to different impact conditions, and are designed for high cycle application primarily in heavy industry. &#160;Liquid Die Springs are used as component parts of machinery and equipment used in the manufacture of tools and dies. &#160;Vibration Dampers are used primarily by the aerospace and defense industries to control the response of electronics and optical systems subjected to air, ship, or spacecraft vibration. &#160;Machined Springs are precisely controlled mechanical springs manufactured from a variety of materials. &#160;These are used primarily for aerospace applications that require custom features that are not possible with conventional wound coil springs. &#160;Custom Shock and Vibration Isolators are comprised of various configurations including liquid springs, fluid dampers, elastomeric springs and Pumpkin&#8482; Mounts. &#160;They are typically used for defense applications. &#160;Custom Actuators are typically of the gas-charged type, using high pressure, that have custom features not available from other suppliers. &#160;These actuators are used for special aerospace and defense applications.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Sales and Distribution</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company uses a technical sales force consisting of Company employees for sales in the United&#160;States. From time to time, the Company uses the services of non-employee sales representatives for sales throughout the rest of the world. Specialized technical sales in custom marketing activities outside the U.S. are serviced by these sales representatives under the direction and with the assistance of the Company's in-house technical sales staff. &#160;Sales representatives typically have non-exclusive agreements with the Company, which, in most instances, provide for payment of commissions on sales at 5% to 10% of the product's net aggregate selling price. &#160;The Company recorded zero and $77,000 of non-employee commission expense for the years ending May 31, 2025 and 2024 respectively. &#160;A limited number of foreign sales representatives also have non-exclusive agreements with the Company to purchase the Company's products for resale purposes. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Competition</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company faces some competition for hydraulic energy absorbers on mature aerospace and defense programs. Other competition in these sectors include the use of competing technologies, not necessarily of similar design as Taylor Devices&#8217; products. For the industrial products group, several foreign companies and two U.S. companies are the Company&#8217;s main competitors in the production of crane buffers and industrial shock absorbers. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company competes directly against three other firms supplying structural damping devices for use in the U.S. For structural applications outside of the U.S., the Company competes directly with several other firms, particularly in Japan and Taiwan. The Company competes with numerous other firms that supply alternative seismic protection technologies.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">4</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Raw Materials and Supplies</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The principal raw materials and supplies used by the Company in the manufacture of its products are provided by numerous U.S. and foreign suppliers. &#160;The loss of any one of these suppliers would not have a material adverse effect on the Company.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Dependence Upon Major Customers</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Sales to three customers accounted for approximately 42% (21%, 15% and 6%, respectively) of our net sales for 2025. Sales to four customers accounted for approximately 40% (21%, 7%, 7% and 5%, respectively) of our net sales for 2024. The loss of any or all of these customers, unless the business is replaced by the Company, would have a material adverse effect on the Company.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Patents, Trademarks and Licenses</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company holds 24 patents expiring at different times until the year 2042.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Terms of Sale</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company had no inventory out on consignment and there were no consignment sales for the years ended May 31, 2025 and 2024. &#160;No extended payment terms are offered. &#160;During the year ended May 31, 2025, delivery time after receipt of orders averaged 8 to 10 weeks for the Company's standard industrial products. &#160;Due to the volatility of structural and aerospace/defense programs, we usually require progress payments for larger projects where the Company supplies custom designed components.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Need for Government Approval of Principal Products or Services</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Contracts between the Company and the federal government or its independent contractors are subject to termination at the election of the federal government. &#160;Contracts are generally entered into on a fixed price basis. &#160;If the federal government should limit defense spending, these contracts could be reduced or terminated, which management believes would have a materially adverse effect on the Company.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Research and Development</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">To accommodate growth and to maintain its presence in current markets, the Company engages in product research and development activities in connection with the design of its products.&#160; Occasionally, research and development for products in the aerospace and defense sectors is funded by customers or the federal government.&#160; The Company also engages in research testing of its products.&#160; For the years ended May 31, 2025 and 2024, the Company expended $444,000 and $388,000, respectively, on product research. &#160;For the years ended May 31, 2025 and 2024, government-funded research and development totaled $1,141,000 and $818,000, respectively. For the years ended May 31, 2025 and 2024, customer-funded research and development totaled $228,000 and $477,000, respectively.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Government Regulation</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Compliance with federal, state, and local laws and regulations regulating the discharge of materials into the environment has had no material effect on the Company, and the Company believes that it is in substantial compliance with these laws and regulations.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company is subject to the Occupational Safety and Health Act ("OSHA") and the rules and regulations promulgated thereunder, which establish strict standards for the protection of employees, and impose fines for violations of such standards. The Company believes that it is in substantial compliance with OSHA and such rules and regulations promulgated thereunder.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company is also subject to regulations relating to production of products for the federal government. &#160;These regulations allow for frequent governmental audits of the Company's operations and extensive testing of Company products. &#160;The Company believes that it is in substantial compliance with these regulations. </p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">5</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Employees</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">As of May 31, 2025, the Company had 137 total employees, consisting of 135 full-time employees and two part-time employees. The Company has good relations with its employees, and none of the Company&#8217;s employees are covered by a collective bargaining agreement.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<a id="a2"></a><p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Item 1A. &#160;Risk Factors.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Smaller reporting companies are not required to provide the information required by this item.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<a id="a3"></a><p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Item 1B. &#160;Unresolved Staff Comments.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">None.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<a id="a4"></a><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Item 1C. Cybersecurity</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><i>Risk Management and Strategy</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">In connection with the operation of the Company&#8217;s business, we identify, assess and manage key risks that may affect the Company, including material risks from cybersecurity threats, through our system security plan. Our system security plan is aligned with the 110 controls detailed in the NIST (SP) 800-171 and Department of Defense CMMC Level 2 guidelines for Cybersecurity. We have company-wide security policies, standards and controls that seek to incorporate best practices in security engineering, technology architecture and data protection. Our policies and controls include security measures designed to protect our systems against unauthorized access. We also maintain cybersecurity protection measures covering our information technology systems, including the protection of customer data, vendor data and employee information. We have also implemented specialized training and education programs to guard against cybersecurity incidents, including company-wide communications and presentations, phishing simulations, focused training for specific roles and a general cybersecurity training program required for all employees.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">We engage third parties to perform regular reviews of our security controls which includes 24/7/365 security incident and event management as well as vulnerability services and penetration testing. Our processes to identify, assess and manage material risks from cybersecurity threats include risks associated with our use of third-party service providers, including cloud-based platforms. We oversee and identify cybersecurity risks from our third-party service providers in a number of ways, including appropriate due diligence in connection with service provider onboarding, robust security terms and conditions in our third-party service provider contracts and ongoing risk-based monitoring to ensure compliance with our cybersecurity standards. We believe that these policies and controls provide us with an appropriate assessment of potential cybersecurity threats.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">As of the date of this Annual Report on Form 10-K (this &#8220;Form 10-K&#8221;), we are not aware of any risks from any potential cybersecurity threat or from any previous cybersecurity incident that have materially affected or are likely to materially affect our business strategy, results of operations or financial condition. However, the preventative actions we have taken and continue to take to reduce the risk of cybersecurity threats and incidents may not successfully protect against these potential threats and incidents in the future.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><i>Governance</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company&#8217;s Board of Directors is responsible for overseeing management&#8217;s identification, assessment and management of key risks, including cybersecurity risks. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Our Director of Information Technology, Mitch Reszczenski, is primarily responsible for assessing and managing our cybersecurity risks. Mr. Reszczenski has over 29 years of extensive information technology experience in highly successful manufacturing, engineering and financial organizations. Mr. Reszczenski provides regular updates on cybersecurity risks and threats and key developments in Company policies, practices and related risk exposures to the Chief Executive Officer and Chief Financial Officer. Additionally, senior management provides an update to the Board of Directors on cybersecurity matters at least once a year, and more often as appropriate. &#160;The Board of Directors annually reviews and approves the capital and operating budgets, ultimately reviewing and approving the amount spent by the Company on cybersecurity measures.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">6</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Mr. Reszczenski works with senior management to implement and oversee processes for the regular monitoring of our information systems. If a cybersecurity incident involving the Company were to occur, Mr. Reszczenski would engage senior management to initially determine the potential materiality of the incident, the potential need for public disclosure, the timing and extent of the Company&#8217;s response and whether any future vulnerabilities are expected. As part of this evaluation, senior management would also identify immediate actions to mitigate the impact and long-term strategies for remediation and prevention of future cybersecurity incidents. After an initial evaluation by senior management, the relevant information regarding the cybersecurity incident and its materiality would be promptly reported to the Company&#8217;s Board of Directors for further review and evaluation, including as to whether public disclosure would be required or advisable.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<a id="a5"></a><p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Item 2. &#160;Properties.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's production facilities occupy approximately six acres on Tonawanda Island in North Tonawanda, New York and are comprised of four interconnected buildings and two adjacent buildings, each of which is owned by the Company. &#160;The production facilities consist of a small parts plant (approximately 4,400 square feet), a large parts plant (approximately 13,500 square feet), and include a facility of approximately 7,000 square feet comprised of a test facility, storage area, pump area and the Company's general offices. &#160;One adjacent building is a 27,000 square foot seismic assembly and test facility. This building contains overhead traveling cranes to allow dampers to be built up to 45 feet in length. It is also the site of three long bed damper test machines where seismic dampers manufactured by the Company will be tested at maximum force to satisfy customer specifications. &#160;Another adjacent building (approximately 2,000 square feet) is used as a training facility. &#160;These facilities total more than 54,000 square feet. &#160;Adjacent to these facilities, the Company has a remote test facility used for shock testing. &#160;This state-of-the-art test facility is 1,200 square feet. &#160;The Company owns two additional industrial buildings on nine acres of land in the City of North Tonawanda located 1.4 miles from the Company&#8217;s headquarters on Tonawanda Island. &#160;Total area of the two buildings is 46,000 square feet. &#160;One building includes a machine shop containing custom-built machinery for boring, deep-hole drilling and turning of parts. &#160;Another is used for painting and packaging parts and completed units.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<a id="a6"></a><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Item 3. Legal Proceedings.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<a id="a7"></a><p style="font:10pt Times New Roman;margin:0;color:#000000">Refer to Note 17, &#8220;Legal Proceedings,&#8221; to the Notes to Consolidated Financial Statements for additional information regarding the Company&#8217;s legal proceedings, which is incorporated by reference into this Item 3. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Item 4.</b> <b> Mine Safety Disclosures.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Not applicable.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">7</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>PART II</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<a id="a8"></a><p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Item 5.</b> &#160;<b>Market for Registrant's Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Market Information</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's common stock, $.025 par value per share (the &#8220;Common Stock&#8221;), trades on the Nasdaq Stock Market under the symbol &#8220;TAYD.&#8221;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Holders</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">As of August 1, 2025, the number of record holders of the Company's Common Stock was 340. &#160;A substantial number of shares of the Company's Common Stock are held in street name. &#160;The Company believes that the total number of beneficial owners of its Common Stock is approximately 3,400.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Dividends</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company does not pay a cash dividend and plans to retain cash in the foreseeable future to fund working capital needs.</p>
<p style="font:10pt Times New Roman;margin:0;text-indent:-18pt;margin-left:18pt;color:#000000;text-align:justify">&#160;</p>
<a id="a9"></a><p style="font:10pt Times New Roman;margin:0;text-indent:-18pt;margin-left:18pt;color:#000000;text-align:justify"><b>Item 6. &#160;[Reserved].</b></p>
<p style="font:10pt Times New Roman;margin:0;text-indent:-18pt;margin-left:18pt;color:#000000;text-align:justify">&#160;</p>
<a id="a10"></a><p style="font:10pt Times New Roman;margin:0;text-indent:-18pt;margin-left:18pt;color:#000000"><b>Item 7. &#160;Management's Discussion and Analysis of Financial Condition and Results of Operations.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Cautionary Statement</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Private Securities Litigation Reform Act of 1995 provides a "safe harbor" for forward-looking statements. &#160;Information in this Item 7, "Management's Discussion and Analysis of Financial Condition and Results of Operations" and elsewhere in this Form 10-K that does not consist of historical facts are "forward-looking statements." &#160;Statements accompanied or qualified by, or containing, words such as "may," "will," "should," "believes," "expects," "intends," "plans," "projects," "estimates," "predicts," "potential," "outlook," "forecast," "anticipates," "presume," "assume" and "optimistic" constitute forward-looking statements and, as such, are not a guarantee of future performance. &#160;These statements involve factors, risks and uncertainties, the impact or occurrence of which can cause actual results to differ materially from the expected results described in such statements. &#160;Risks and uncertainties can include, among others: fluctuations in general business cycles and changing economic conditions; variations in timing and amount of customer orders; changing product demand and industry capacity; increased competition and pricing pressures; advances in technology that can reduce the demand for the Company's products, as well as other factors, many or all of which may be beyond the Company's control. &#160;Consequently, investors should not place undue reliance on forward-looking statements as predictive of future results. &#160;Except as required by law, the Company disclaims any obligation to release publicly any updates or revisions to the forward-looking statements herein to reflect any change in the Company's expectations with regard thereto, or any changes in events, conditions or circumstances on which any such statement is based.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Application of Critical Accounting Policies and Estimates</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's consolidated financial statements and accompanying notes are prepared in accordance with U.S. generally accepted accounting principles. &#160;The preparation of the Company's financial statements requires management to make estimates, assumptions and judgments that affect the amounts reported. &#160;These estimates, assumptions and judgments are affected by management's application of accounting policies, which are discussed in Note 1, "Summary of Significant Accounting Policies," of the Notes to Consolidated Financial Statements and elsewhere in the accompanying consolidated financial statements. As discussed below, our financial position or results of operations may be materially affected when reported under different conditions or when using different assumptions in the application of such policies. &#160;In the event estimates or assumptions prove to be different from actual amounts, adjustments are made in subsequent periods to reflect more current information. &#160;Management believes the following critical accounting policies affect the more significant judgments and estimates used in the preparation of the Company's financial statements.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">8</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Accounts Receivable</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Our ability to collect outstanding receivables from our customers is critical to our operating performance and cash flows. Accounts receivable are stated at an amount management expects to collect from outstanding balances. Management provides for estimated credit losses through a charge to expense and a credit to a valuation allowance based on its assessment of the current status of individual accounts after considering the age of each receivable and communications with the customers involved. Balances that are collected, for which a credit to a valuation allowance had previously been recorded, result in a current-period reversal of the earlier transaction charging expense and crediting a valuation allowance. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to accounts receivable in the current period. The actual amount of accounts written off over the five year period ended May 31, 2025 equaled 0.2% of sales for that period. The balance of the valuation allowance has increased to $564,000 at May 31, 2025 from $29,000 at May 31, 2024 due to the uncertainty of collecting a $751,000 balance overdue on a structural project. The Company is in discussions with the customer regarding payment of this balance.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inventory</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. &#160;This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances, and product obsolescence. &#160;Therefore, management of the Company has recorded an allowance for potential inventory obsolescence. &#160;Based on certain assumptions and judgments made from the information available at that time, we determine the amount in the inventory allowance. &#160;If these estimates and related assumptions or the market changes, we may be required to record additional reserves. &#160;Historically, actual results have not varied materially from the Company's estimates. &#160;There was $107,000 and $791,000 of inventory disposed of during the years ended May 31, 2025 and 2024, respectively. &#160;The provision for potential inventory obsolescence was zero and $386,000 for the years ended May 31, 2025 and 2024, respectively. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Revenue Recognition</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">Revenue is recognized when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account. A contract&#8217;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations. &#160;</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. &#160;Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. &#160;Contract costs include labor, material and overhead. &#160;Total estimated costs for each of the contracts are estimated based on a combination of historical costs of manufacturing similar products and estimates or quotes from vendors for supplying parts or services towards the completion of the manufacturing process. &#160;Adjustments to cost and profit estimates are made periodically due to changes in job performance, job conditions and estimated profitability, including those arising from final contract settlements. &#160;These changes may result in revisions to costs and income and are recognized in the period in which the revisions are determined. &#160;Any losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. &#160;&#160;If total costs calculated upon completion of the manufacturing process in the current period for a contract are more than the estimated total costs at completion used to calculate revenue in a prior period, then the profits in the current period will be lower than if the estimated costs used in the prior period calculation were equal to the actual total costs upon completion. &#160;Historically, actual results have not varied materially from the Company's estimates. &#160;Other sales to customers are recognized upon shipment to the customer based on contract </p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">9</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify"><span style="font-size:10pt">prices and terms. &#160;In the year ended May 31, 2025, 68% of revenue was recorded for contracts in which revenue was recognized over time while 32% was recognized at a point in time. &#160;In the year ended May 31, 2024, 59% of revenue was recorded for contracts in which revenue was recognized over time while 41% was recognized at a point in time. </span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">For financial statement presentation purposes, the Company nets progress billings against the total costs incurred and estimated earnings on uncompleted contracts. &#160;The asset, "costs and estimated earnings in excess of billings," represents revenues recognized in excess of amounts billed. &#160;The liability, "billings in excess of costs and estimated earnings," represents billings in excess of revenues recognized.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Income Taxes</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. &#160;Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. &#160;The deferred tax assets relate principally to asset valuation allowances such as inventory obsolescence reserves and bad debt reserves and also to liabilities including warranty reserves, accrued vacation, accrued commissions and others. &#160;The deferred tax liabilities relate primarily to differences between financial statement and tax depreciation. &#160;Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. &#160;The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. &#160;A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. &#160;The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. &#160;In future years the Company will need to generate approximately $13.6 million of taxable income in order to realize our deferred tax assets recorded as of May 31, 2025 of $2,848,000. &#160;This deferred tax asset balance is 31% ($671,000) higher than at the end of the prior year. &#160;The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. &#160;If actual results differ from estimated results or if the Company adjusts these assumptions, the Company may need to adjust its deferred tax assets or liabilities, which could impact its effective tax rate. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company and its subsidiary file consolidated federal and state income tax returns. &#160;As of May 31, 2025, the Company had state investment tax credit carryforwards of approximately $493,000 expiring through May 2030.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Results of Operations</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">A summary of the period-to-period changes in the principal items included in the consolidated statements of income is shown below:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:371.1pt"><tr style="height:12.75pt"><td colspan="3" valign="bottom" style="width:361.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Summary comparison of the years ended May 31, 2025 and 2024</b></p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:11.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:74.55pt"><p style="font:10pt Times New Roman;margin:0;margin-right:-7.35pt;color:#000000;text-align:center"><b>Increase /</b></p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:13.5pt"><td valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:11.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:74.55pt;border-bottom:1pt solid #000000"><p style="font:10pt Times New Roman;margin:0;margin-right:-7.35pt;color:#000000;text-align:center"><b>(Decrease)</b></p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt;border-bottom:1pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Sales, net</p>
</td><td valign="bottom" style="width:11.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:74.55pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt">1,710,000&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Cost of goods sold</p>
</td><td valign="bottom" style="width:11.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:74.55pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt">1,071,000&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Research and development costs</p>
</td><td valign="bottom" style="width:11.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="bottom" style="width:74.55pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt">56,000&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Selling, general and administrative expenses</p>
</td><td valign="bottom" style="width:11.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="bottom" style="width:74.55pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt">436,000&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Other income </p>
</td><td valign="bottom" style="width:11.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="bottom" style="width:74.55pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt">(35,000)</kbd>&#160;</p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Income before provision for income taxes</p>
</td><td valign="bottom" style="width:11.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="bottom" style="width:74.55pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt">112,000&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Provision for income taxes</p>
</td><td valign="bottom" style="width:11.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:74.55pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt">(302,000)</kbd>&#160;</p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Net income</p>
</td><td valign="bottom" style="width:11.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:74.55pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt">414,000&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:9.5pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">10</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>For the year ended May 31, 2025</b> (All figures being discussed are for the year ended May 31, 2025 as compared to the year ended May 31, 2024).</p>
<table style="border-collapse:collapse;width:438.25pt;margin-left:4.65pt"><tr style="height:14.25pt"><td valign="bottom" style="width:164pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td colspan="2" valign="middle" style="width:143pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b> Year ended May 31 </b></p>
</td><td colspan="4" valign="middle" style="width:131.25pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b> Change </b></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:164pt;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:74pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>2025 </b></p>
</td><td valign="bottom" style="width:69pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>2024</b></p>
</td><td valign="bottom" style="width:67.6pt;border-top:0.5pt solid #000000;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b> Amount </b></p>
</td><td valign="top" style="width:17.65pt;padding-right:5.75pt;border-top:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;margin-right:-0.15pt;color:#000000;text-align:center">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:46pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Percent </b></p>
</td></tr>
<tr style="height:15.75pt"><td valign="bottom" style="width:164pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Net Revenue</p>
</td><td valign="bottom" style="width:74pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:59pt">46,293,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:69pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">44,583,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:67.6pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">1,710,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:17.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;margin-right:-0.15pt;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:46pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><i>4%</i></p>
</td></tr>
<tr style="height:15.75pt"><td valign="bottom" style="width:164pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Cost of sales</p>
</td><td valign="bottom" style="width:74pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:59pt">24,815,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:69pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">23,744,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:67.6pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">1,071,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:17.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;margin-right:-0.15pt;color:#000000"> &#160;</p>
</td><td colspan="2" valign="bottom" style="width:46pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><i>5%</i></p>
</td></tr>
<tr style="height:18pt"><td valign="bottom" style="width:164pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Gross profit</p>
</td><td valign="bottom" style="width:74pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:59pt">21,478,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:69pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">20,839,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:67.6pt;padding-left:5.75pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">639,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:17.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;margin-right:-0.15pt;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:46pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><i>3%</i></p>
</td></tr>
<tr style="height:19.5pt"><td valign="bottom" style="width:164pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#8230; as a percentage of net revenues</p>
</td><td valign="bottom" style="width:74pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">46%</p>
</td><td valign="bottom" style="width:69pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">47%</p>
</td><td valign="bottom" style="width:67.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="top" style="width:42.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:21.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's consolidated results of operations showed a 4% increase in net revenues and an increase in net income of 5%. Revenues recorded in the year ended May 31, 2025 for long-term projects (&#8220;Project(s)&#8221;) were 19% higher than the level recorded in the prior year. &#160;We had 37 Projects in process during the year ended May 31, 2025 compared with 39 during the same period last year. &#160;Revenues recorded in the year ended May 31, 2025 for other-than long-term projects (non-projects) were 18% lower than the level recorded in the prior year. &#160;The number of Projects in-process fluctuates from period to period. &#160;The changes from the prior year to the year ended May 31, 2025 are not necessarily representative of future results.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Sales of the Company's products are made to three general groups of customers: industrial, structural and aerospace / defense. The Company saw a 3% increase from last year&#8217;s level in sales to structural customers who were seeking seismic / wind protection for either construction of new buildings and bridges or retrofitting existing buildings and bridges along with a 2% increase in sales to customers in aerospace / defense and a 24% increase in sales to customers using our products in industrial applications. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">A breakdown of sales to these three general groups of customers, as a percentage of total net revenue for fiscal years ended May 31, 2025 and 2024 is as follows: </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="border-collapse:collapse;width:261pt;margin-left:108.9pt"><tr><td valign="top" style="width:103.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td colspan="2" valign="top" style="width:157.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Year ended May 31</b></p>
</td></tr>
<tr><td valign="top" style="width:103.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:76.5pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:81pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>2024</b></p>
</td></tr>
<tr><td valign="top" style="width:103.5pt;padding-left:5.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Industrial</p>
</td><td valign="top" style="width:76.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;&#160;9%</p>
</td><td valign="top" style="width:81pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;&#160;8%</p>
</td></tr>
<tr><td valign="top" style="width:103.5pt;padding-left:5.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Structural</p>
</td><td valign="top" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">32%</p>
</td><td valign="top" style="width:81pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">32%</p>
</td></tr>
<tr><td valign="top" style="width:103.5pt;padding-left:5.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Aerospace / Defense</p>
</td><td valign="top" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">59%</p>
</td><td valign="top" style="width:81pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">60%</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Total sales within the U.S. decreased 5% from last year. &#160;Total sales to Asia increased to $7.0 million from $2.0 million last year. &#160;The shift in domestic and international sales concentration from the prior year is attributable to normal changes in structural project activity. &#160;Net revenue by geographic region, as a percentage of total net revenue for fiscal years ended May 31, 2025 and 2024 is as follows:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="border-collapse:collapse;width:261pt;margin-left:108.9pt"><tr><td valign="top" style="width:103.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td colspan="2" valign="top" style="width:157.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Year ended May 31</b></p>
</td></tr>
<tr><td valign="top" style="width:103.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:76.5pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:81pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>2024</b></p>
</td></tr>
<tr><td valign="top" style="width:103.5pt;padding-left:5.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">U.S.</p>
</td><td valign="top" style="width:76.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">79%</p>
</td><td valign="top" style="width:81pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">86%</p>
</td></tr>
<tr><td valign="top" style="width:103.5pt;padding-left:5.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Asia</p>
</td><td valign="top" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"> 15%</p>
</td><td valign="top" style="width:81pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"> &#160;4%</p>
</td></tr>
<tr><td valign="top" style="width:103.5pt;padding-left:5.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Other</p>
</td><td valign="top" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">  &#160;6%</p>
</td><td valign="top" style="width:81pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"> &#160;10%</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The gross profit as a percentage of net revenue of 46% in the year ended May 31, 2025 is in line with the same period of the prior year. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">At May 31, 2025, we had 142 open sales orders in our backlog with a total sales value of $27.1 million. At May 31, 2024, we had 134 open sales orders in our backlog with a total sales value of $33.1 million. $13.1 million of the current backlog is on Projects already in progress. $18.6 million of the $33.1 million sales order backlog at May 31, 2024 was in progress at that date. 75% of the sales value in the backlog is for aerospace / defense customers compared to 72% at the end of fiscal 2024. As a percentage of the total sales order backlog, orders from structural customers accounted for 19% at May 31, 2025 and 22% at May 31, 2024. The Company expects to recognize revenue for the majority of the backlog during the fiscal year ending May 31, 2026, with the remainder during the fiscal year ending May 31, 2027. </p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">11</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's backlog, revenues, commission expense, gross margins, gross profits, and net income fluctuate from period to period. &#160;Total sales in the current period and the changes in the current period compared to the prior period, are not necessarily representative of future results.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><i>Research and Development Costs</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="border-collapse:collapse;width:440.85pt;margin-left:4.65pt"><tr style="height:12.75pt"><td valign="bottom" style="width:158.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td colspan="2" valign="middle" style="width:153pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;margin-right:-5.4pt;color:#000000;text-align:center">Years ended May 31</p>
</td><td colspan="4" valign="middle" style="width:129.6pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">Change</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:158.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2025</p>
</td><td valign="bottom" style="width:76.5pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td valign="bottom" style="width:65.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"> Amount </p>
</td><td valign="top" style="width:11.1pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:53.2pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">Percent</p>
</td></tr>
<tr style="height:12.75pt"><td valign="middle" style="width:158.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">R &amp; D </p>
</td><td valign="middle" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"> &#160;$ 444,000</p>
</td><td valign="middle" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ 388,000</p>
</td><td valign="middle" style="width:65.3pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ 56,000</p>
</td><td valign="middle" style="width:11.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="middle" style="width:43.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"> &#160;14%</p>
</td></tr>
<tr style="height:20.25pt"><td valign="middle" style="width:158.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"> &#160;&#160;&#8230;&#160;as a percentage of net revenues</p>
</td><td valign="middle" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">1.0%</p>
</td><td valign="middle" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">0.9%</p>
</td><td valign="middle" style="width:65.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="middle" style="width:11.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="middle" style="width:53.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Research and development costs increased 14% from the prior year.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><i>Selling, General and Administrative Expenses</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="border-collapse:collapse;width:440.05pt;margin-left:4.65pt"><tr style="height:12.75pt"><td valign="bottom" style="width:158.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td colspan="2" valign="middle" style="width:153pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;margin-right:-5.4pt;color:#000000;text-align:center">Years ended May 31</p>
</td><td colspan="3" valign="middle" style="width:128.8pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">Change</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:158.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2025</p>
</td><td valign="bottom" style="width:76.5pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td valign="bottom" style="width:64.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"> Amount </p>
</td><td valign="top" style="width:11.1pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="bottom" style="width:53.2pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">Percent</p>
</td></tr>
<tr style="height:12.75pt"><td valign="middle" style="width:158.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">S G &amp; A</p>
</td><td valign="middle" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ 11,407,000</p>
</td><td valign="middle" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ 10,971,000</p>
</td><td valign="middle" style="width:64.5pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$&#160;436,000</p>
</td><td valign="middle" style="width:11.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="middle" style="width:53.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">4%</p>
</td></tr>
<tr style="height:15.75pt"><td valign="middle" style="width:158.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"> &#160;&#160;&#8230;&#160;as a percentage of net revenues</p>
</td><td valign="middle" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">25%</p>
</td><td valign="middle" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">25%</p>
</td><td valign="middle" style="width:64.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="middle" style="width:11.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="middle" style="width:53.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Selling, general and administrative expenses increased 4% from the prior year, primarily from increased credit loss expense.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><i>Operating Income</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Operating income of $9,627,000 for the year ended May 31, 2025 increased 2% from the prior year, primarily from increased revenue. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><i>Other Income </i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Other income decreased 2% from the prior year. &#160;The decrease was driven by short-term investment interest income.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><i>Provision for Income Taxes</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's effective tax rate (ETR) is calculated based upon current assumptions relating to the year's operating results and various tax related items. &#160;The ETR for the fiscal year ended May 31, 2025 is 15%, compared to the ETR for the prior year of 18%. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:395.6pt"><tr><td valign="top" style="width:238.5pt;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt;border-top:0.5pt solid #000000;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:9pt;border-top:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:65.35pt;border-top:0.5pt solid #000000;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>2024</b></p>
</td><td colspan="2" valign="top" style="width:10.75pt;border-top:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:238.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Computed tax provision at the expected statutory rate</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt">2,317,000&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:9pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td colspan="2" valign="top" style="width:66.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">2,293,000&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:10.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:238.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Tax effect of permanent differences:</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="top" style="width:66.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:10.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:238.5pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Research tax credits</p>
</td><td valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt">(489,000)</kbd>&#160;</p>
</td><td valign="bottom" style="width:9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:66.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">(408,000)</kbd>&#160;</p>
</td><td valign="bottom" style="width:10.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:238.5pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Foreign-derived intangible income deduction</p>
</td><td valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt">(225,000)</kbd>&#160;</p>
</td><td valign="bottom" style="width:9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:66.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">(142,000)</kbd>&#160;</p>
</td><td valign="bottom" style="width:10.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:238.5pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Stock option costs</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt">(12,000)</kbd>&#160;</p>
</td><td valign="top" style="width:9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="top" style="width:66.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">49,000&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:10.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:238.5pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Other permanent differences</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt">24,000&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="top" style="width:66.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">3,000&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:10.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:238.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Other</p>
</td><td valign="top" style="width:72pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt">5,000&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:9pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="top" style="width:66.05pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">127,000&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:10.05pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:238.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt;border-top:0.75pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt">1,620,000&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:9pt;border-top:0.75pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td colspan="2" valign="top" style="width:66.05pt;border-top:0.75pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">1,922,000&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:10.05pt;border-top:0.75pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The<b> </b>foreign-derived intangible income deduction is a tax deduction provided to corporations that sell goods or services to foreign customers. &#160;It became available through the Tax Cuts and Jobs Act of 2017. </p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">12</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Liquidity and Capital Resources, Line of Credit and Long-Term Debt</b></p>
<p style="font:8pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's primary liquidity requirements depend on its working capital and capital expenditure needs. &#160;Working capital consists primarily of cash and short-term investments, inventory, accounts receivable, costs and estimated earnings in excess of billings, accounts payable, accrued expenses and billings in excess of costs and estimated earnings. &#160;The Company's primary source of liquidity has been excess cash flow from operations. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Capital expenditures for the year ended May 31, 2025 were $2,602,000 compared to $1,149,000 in the prior year. &#160;Current year capital expenditures included new manufacturing machinery, testing equipment, upgrades to technology equipment and assembly / test facility improvements. &#160;The Company has commitments to make capital expenditures of approximately $1,853,000 as of May 31, 2025. &#160;These capital expenditures will be primarily for new manufacturing and testing equipment.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company has a $10,000,000 demand line of credit with M&amp;T Bank, with interest payable at the Company's option of 30, 60 or 90 day SOFR rate plus 2.365%. There is no outstanding balance at May 31, 2025. &#160;The line is secured by a negative pledge of the Company's real and personal property and is subject to renewal annually. The bank is not committed to make loans under this line of credit and no commitment fee is charged.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Management believes that the Company's cash on hand, cash flows from operations, and borrowing capacity under the bank line of credit will be sufficient to fund ongoing operations and capital improvements for the next twelve months.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Inventory and Maintenance Inventory</b></p>
<table style="border-collapse:collapse;width:484.45pt;margin-left:4.65pt"><tr style="height:12.75pt"><td valign="bottom" style="width:162.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:89.95pt;padding-right:5.75pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b> May 31, 2025 </b></p>
</td><td colspan="2" valign="bottom" style="width:100.4pt;padding-right:5.75pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b> May 31, 2024</b></p>
</td><td colspan="3" valign="bottom" style="width:131.35pt;padding-right:5.75pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Increase /(Decrease)</b></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:162.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Raw materials</p>
</td><td valign="bottom" style="width:55.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:0pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:50pt">627,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:66.25pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:5pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">887,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:73.45pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(260,000)</kbd>&#160;</p>
</td><td valign="bottom" style="width:11.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:46.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><i>-29%</i></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:162.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Work-in-process</p>
</td><td valign="bottom" style="width:55.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:50pt">7,223,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:66.25pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">6,412,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:73.45pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">811,000&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:11.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:46.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><i>13%</i></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:162.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Finished goods</p>
</td><td valign="bottom" style="width:55.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:50pt">263,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:66.25pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">213,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:73.45pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">50,000&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:11.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:46.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><i>23%</i></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:162.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Inventory</p>
</td><td valign="bottom" style="width:55.8pt;padding-right:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:50pt">8,113,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"> &#160;88%</p>
</td><td valign="bottom" style="width:66.25pt;padding-right:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">7,512,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"> &#160;83%</p>
</td><td valign="bottom" style="width:73.45pt;padding-left:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">601,000&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:11.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:46.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><i>8%</i></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:162.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Maintenance and other inventory</p>
</td><td valign="bottom" style="width:55.8pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:50pt">1,108,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"> &#160;12%</p>
</td><td valign="bottom" style="width:66.25pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">1,580,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"> &#160;17%</p>
</td><td valign="bottom" style="width:73.45pt;padding-left:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(472,000)</kbd>&#160;</p>
</td><td valign="bottom" style="width:11.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:46.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><i>-30%</i></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:162.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Total</p>
</td><td valign="bottom" style="width:55.8pt;padding-right:5.75pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:0pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:50pt">9,221,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">100%</p>
</td><td valign="bottom" style="width:66.25pt;padding-right:5.75pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:5pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">9,092,000</kbd>&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">100%</p>
</td><td valign="bottom" style="width:73.45pt;padding-left:5.75pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">129,000&#160;</kbd>&#160;</p>
</td><td valign="middle" style="width:11.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:46.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><i>1%</i></p>
</td></tr>
<tr style="height:5.25pt"><td valign="bottom" style="width:162.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:55.8pt;padding-right:5.75pt;border-top:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:66.25pt;padding-right:5.75pt;border-top:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:73.45pt;padding-right:5.75pt;border-top:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:11.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:46.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:162.75pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Inventory turnover</p>
</td><td valign="bottom" style="width:55.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2.7</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:66.25pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">3.0</p>
</td><td valign="bottom" style="width:34.15pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:73.45pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:11.8pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:46.1pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inventory, at $8,113,000 as of May 31, 2025, is eight percent higher than at the prior year-end. &#160;Of this, approximately 89% is work in process, 3% is finished goods, and 8% is raw materials. &#160;All of the current inventory is expected to be consumed or sold within twelve months. &#160;The level of inventory will fluctuate from time to time due to the stage of completion of the non-project sales orders in progress at the time. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company disposed of approximately $107,000 and $791,000 of obsolete inventory during the years ended May 31, 2025 and 2024, respectively. &#160;</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">13</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Accounts Receivable, Costs and Estimated Earnings in Excess of Billings (&#8220;CIEB&#8221;) and Billings in Excess of Costs and Estimated Earnings (&#8220;BIEC&#8221;)</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:8pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="border-collapse:collapse;width:512.85pt;margin-left:4.65pt"><tr style="height:12.75pt"><td valign="bottom" style="width:206.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:95.15pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b> May 31, 2025 </b></p>
</td><td colspan="2" valign="bottom" style="width:86.3pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b> May 31, 2024</b></p>
</td><td colspan="3" valign="top" style="width:125.35pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Increase /(Decrease)</b></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:206.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Accounts receivable</p>
</td><td valign="bottom" style="width:84.05pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">5,600,000 </p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:75.2pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">5,212,000 </p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:71.65pt;padding-left:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">388,000&#160;&#160;&#160;</p>
</td><td valign="bottom" style="width:13.2pt;padding-right:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:40.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><i>7%</i></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:206.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">CIEB</p>
</td><td valign="bottom" style="width:84.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">5,360,000 </p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:75.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">4,357,000 </p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:71.65pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">1,003,000&#160;&#160;&#160;</p>
</td><td valign="bottom" style="width:13.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:40.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><i>23%</i></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:206.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Less: BIEC</p>
</td><td valign="bottom" style="width:84.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">4,382,000 </p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:75.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">5,601,000 </p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:71.65pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">(1,219,000)&#160;&#160;</p>
</td><td valign="bottom" style="width:13.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:40.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><i>-22%</i></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:206.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Net</p>
</td><td valign="bottom" style="width:84.05pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ &#160;6,578,000 </p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:75.2pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ &#160;3,968,000 </p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:71.65pt;padding-left:5.75pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$&#160;2,610,000&#160;&#160;&#160;</p>
</td><td valign="middle" style="width:13.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:40.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><i>66%</i></p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:206.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:84.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:75.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:71.65pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:13.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:40.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td></tr>
<tr style="height:13.5pt"><td valign="bottom" style="width:206.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Number of an average day&#8217;s sales outstanding in accounts receivable (DSO)</p>
</td><td valign="bottom" style="width:84.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">32</p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:75.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">39</p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:71.65pt;padding-left:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:13.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:40.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:13.5pt"><td valign="bottom" style="width:206.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:84.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:75.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:11.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:71.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:13.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:40.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company combines the totals of accounts receivable, the asset CIEB, and the liability BIEC, to determine how much cash the Company will eventually realize from revenue recorded to date. &#160;As the accounts receivable figure rises in relation to the other two figures, the Company can anticipate increased cash receipts within the ensuing 30-60 days. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Accounts receivable of $5,600,000 as of May 31, 2025 includes no retainage by customers on long-term construction projects. &#160;The number of an average day's sales outstanding in accounts receivable (DSO) was 32 days at May 31, 2025 and 39 days at May 31, 2024. &#160;The Company increased its allowance for estimated credit losses to $564,000 at May 31, 2025 from $29,000 at May 31, 2024 due to the uncertainty of collecting a $751,000 overdue balance on a structural project. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The status of the projects in-progress at the end of the current and prior fiscal years have changed in the factors affecting the year-end balances in the asset CIEB, and the liability BIEC:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:252pt;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:93.6pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:93.6pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>2024</b></p>
</td></tr>
<tr><td valign="top" style="width:252pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Number of projects in progress at year-end</p>
</td><td valign="top" style="width:93.6pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">21</p>
</td><td valign="top" style="width:93.6pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">19</p>
</td></tr>
<tr><td valign="top" style="width:252pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Aggregate percent complete at year-end</p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">65%</p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">53%</p>
</td></tr>
<tr><td valign="top" style="width:252pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Average total value of projects in progress at year-end</p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$1,846,000</p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$2,089,000</p>
</td></tr>
<tr><td valign="top" style="width:252pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Percentage of total value invoiced to customer</p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">64%</p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">56%</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">There are two more projects in-process at the end of the current fiscal year as compared with the prior year end and the average value of those projects has decreased by 12% between those two dates. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">As noted above, CIEB represents revenues recognized in excess of amounts billed. &#160;Whenever possible, the Company negotiates a provision in sales contracts to allow the Company to bill, and collect from the customer, payments in advance of shipments. &#160;Unfortunately, provisions such as this are often not possible. &#160;The $5,360,000 balance in this account at May 31, 2025 is a 23% increase from the prior year end. &#160;This increase reflects the higher aggregate level of the percentage of completion of these Projects as of the current year end as compared with the Projects in process at the prior year end. &#160;Generally, if progress billings are permitted under the terms of a project sales agreement, then the more complete the project is, the more progress billings will be permitted. &#160;The Company expects to bill the entire amount during the next twelve months. &#160;38% of the CIEB balance as of the end of the last fiscal quarter, February 28, 2025, was billed to those customers in the current fiscal quarter ended May 31, 2025. &#160;The remainder will be billed as the projects progress, in accordance with the terms specified in the various contracts.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">14</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The year-end balances in the CIEB account are comprised of the following components:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:222.6pt;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:87.3pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>May 31, 2025</b></p>
</td><td valign="top" style="width:19.5pt;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:87.3pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>May 31, 2024</b></p>
</td></tr>
<tr><td valign="top" style="width:222.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Costs</p>
</td><td valign="top" style="width:87.3pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ &#160;8,514,000</p>
</td><td valign="top" style="width:19.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:87.3pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ &#160;9,644,000</p>
</td></tr>
<tr><td valign="top" style="width:222.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Estimated earnings</p>
</td><td valign="top" style="width:87.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">9,289,000</p>
</td><td valign="top" style="width:19.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:87.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">9,782,000</p>
</td></tr>
<tr><td valign="top" style="width:222.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Less: Billings to customers</p>
</td><td valign="top" style="width:87.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">12,443,000</p>
</td><td valign="top" style="width:19.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:87.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">15,069,000</p>
</td></tr>
<tr><td valign="top" style="width:222.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">CIEB</p>
</td><td valign="top" style="width:87.3pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ &#160;5,360,000</p>
</td><td valign="top" style="width:19.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:87.3pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ &#160;4,357,000</p>
</td></tr>
<tr style="height:4.35pt"><td valign="top" style="width:222.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Number of projects in progress</p>
</td><td valign="top" style="width:87.3pt;border-top:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">14</p>
</td><td valign="top" style="width:19.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:87.3pt;border-top:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">14</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">As noted above, BIEC represents billings to customers in excess of revenues recognized. &#160;The $4,382,000 balance in this account at May 31, 2025 is in comparison to a $5,601,000 balance at the end of the prior year. &#160;The balance in this account fluctuates in the same manner and for the same reasons as the account "costs and estimated earnings in excess of billings," discussed above. &#160;Final delivery of product under these contracts is expected to occur during the next twelve months.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The year-end balances in this account are comprised of the following components:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:223.15pt;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:86.35pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>May 31, 2025</b></p>
</td><td valign="top" style="width:19.9pt;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:87.45pt;border:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>May 31, 2024</b></p>
</td></tr>
<tr><td valign="top" style="width:223.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Billings to customers</p>
</td><td valign="top" style="width:86.35pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">12,253,000</kbd>&#160;</p>
</td><td valign="top" style="width:19.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:87.45pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt">7,211,000</kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:223.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Less: &#160;Costs</p>
</td><td valign="top" style="width:86.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">3,985,000</kbd>&#160;</p>
</td><td valign="top" style="width:19.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:87.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt">933,000</kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:223.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Less: Estimated earnings</p>
</td><td valign="top" style="width:86.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">3,886,000</kbd>&#160;</p>
</td><td valign="top" style="width:19.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:87.45pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt">677,000</kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:223.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">BIEC</p>
</td><td valign="top" style="width:86.35pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">4,382,000</kbd>&#160;</p>
</td><td valign="top" style="width:19.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:87.45pt;border-top:0.5pt solid #000000;border-bottom:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt">5,601,000</kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:223.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Number of projects in progress</p>
</td><td valign="top" style="width:86.35pt;border-top:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">7</kbd>&#160;</p>
</td><td valign="top" style="width:19.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:87.45pt;border-top:3px double #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt">5</kbd>&#160;</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Accounts payable, at $1,119,000 as of May 31, 2025, is 22% less than the prior year end. &#160;This decrease is normal fluctuation of this account and is not considered to be unusual. &#160;The Company expects the current accounts payable amount to be paid during the next twelve months. &#160;&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Accrued expenses of $4,072,000 decreased 13% from the prior year level of $4,664,000. &#160;This change is due to decreases in accrued incentive compensation.</p>
<a id="a11"></a><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Item 7A.</b> <b>Quantitative and Qualitative Disclosures About Market Risk.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Smaller reporting companies are not required to provide the information required by this item.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<a id="a12"></a><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Item 8. Financial Statements and Supplementary Data.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The financial statements and supplementary data required pursuant to this Item 8 are included in this Form 10-K commencing on page F-1 and are incorporated into this Item 8 by reference. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<a id="a13"></a><p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Item 9.</b> <b>Changes in and Disagreements With Accountants on Accounting and</b> <b>Financial Disclosure.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">None.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<a id="a14"></a><p style="font:10pt Times New Roman;margin:0;color:#000000"><b>Item 9A. Controls and Procedures.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:0pt">(a) </kbd><kbd style="margin-left:36pt"></kbd><i>Evaluation of disclosure controls and procedures</i>. &#160;&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's chief executive officer (its principal executive officer) and chief financial officer (its principal financial officer) have evaluated the Company's disclosure controls and procedures as of May 31, 2025 and have concluded that, as of the evaluation date, the disclosure controls and procedures were effective to ensure that information required to be disclosed in the reports that the Company files or submits under the Exchange Act is recorded, processed, summarized and reported, within the time periods specified in the Securities and Exchange Commission&#8217;s (&#8220;SEC&#8221;)  rules and forms and that information required to be disclosed in the reports the Company files or submits under the Exchange Act is accumulated and communicated to our management, including our chief executive officer and chief financial officer, to allow timely decisions regarding required disclosure.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">15</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:0pt">(b)</kbd><kbd style="margin-left:36pt"></kbd><i>Management's report on internal control over financial reporting.</i>&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's management, with the participation of the Company's chief executive officer and chief financial officer, is responsible for establishing and maintaining adequate internal control over financial reporting. &#160;The Company's management has assessed the effectiveness of the Company's internal control over financial reporting as of May 31, 2025. &#160;In making this assessment, management used the criteria set forth by the Committee of Sponsoring Organizations of the Treadway Commission (COSO) in Internal Control -- Integrated Framework, updated in 2013. &#160;Based on this assessment, management has concluded that, as of May 31, 2025, the Company's internal control over financial reporting is effective.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:0pt">(c)</kbd><kbd style="margin-left:36pt"></kbd><i>Changes in internal control over financial reporting.</i>&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">There have been no changes in the Company's internal controls over financial reporting that occurred during the fiscal quarter ended May 31, 2025 that have materially affected, or are reasonably likely to materially affect, the Company's control over financial reporting.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<a id="a15"></a><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Item 9B. Other Information.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><i>Trading Plans</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">During the three months ended May 31, 2025, no director or officer of the Company adopted or terminated a &#8220;Rule 10b5-1 trading arrangement&#8221; or &#8220;non-Rule 10b5-1 trading arrangement,&#8221; as each term is defined in Item 408(a) of Regulation S-K.</p>
<p style="font:12pt Times New Roman;margin:0;color:#000000">&#160;</p>
<a id="a16"></a><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Item 9C. Disclosure Regarding Foreign Jurisdictions that Prevent Inspections.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Not applicable.</p>
<p style="font:12pt Times New Roman;margin:0;color:#000000">&#160;</p>
<a id="a17"></a><p style="font:10pt Times New Roman;margin:0;text-indent:36pt;margin-left:216pt;color:#000000"><b>PART III</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The information required by Items 10, 11, 12, 13 and 14 of this part will be presented in the Company's Proxy Statement to be delivered to shareholders in connection with the Company&#8217;s 2025 Annual Meeting of Shareholders, which information is hereby incorporated by reference into this Form 10-K. &#160;The proxy materials, including the Proxy Statement and form of proxy, will be filed with the SEC within 120 days after the Company's fiscal year end.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">16</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>PART IV</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<a id="a18"></a><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Item 15.</b> <b>Exhibits and Financial Statement Schedules. </b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr style="height:15.3pt"><td colspan="6" valign="top" style="width:517.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">DOCUMENTS FILED AS PART OF THIS REPORT:</p>
</td></tr>
<tr style="height:11.7pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="5" valign="top" style="width:492.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Index to Financial Statements:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:12.6pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:39.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">(i)</p>
</td><td colspan="2" valign="top" style="width:421.7pt"><p style="font:10pt Times New Roman;margin:0;color:#0000FF;text-align:justify"><span style="border-bottom:1px solid #0000FF"><a href="#a25" title="Click to go to this topic in this filing." style="text-decoration:none">Report of Independent Registered Public Accounting Firm</a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:5.4pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:39.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">(ii)</p>
</td><td colspan="2" valign="top" style="width:421.7pt"><p style="font:10pt Times New Roman;margin:0;color:#0000FF;text-align:justify"><span style="border-bottom:1px solid #0000FF"><a href="#a26" title="Click to go to this topic in this filing." style="text-decoration:none">Consolidated Balance Sheets as of May 31, 2025 and 2024</a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:21.15pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:39.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">(iii)</p>
</td><td colspan="2" valign="top" style="width:421.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="#a27" title="Click to go to this topic in this filing." style="text-decoration:none">Consolidated Statements of Income for the years ended May 31, 2025 and 2024</a></span></p>
</td></tr>
<tr style="height:8.1pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:39.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">(iv)</p>
</td><td colspan="2" valign="top" style="width:421.7pt"><p style="font:10pt Times New Roman;margin:0;color:#0000FF;text-align:justify"><span style="border-bottom:1px solid #0000FF"><a href="#a28" title="Click to go to this topic in this filing." style="text-decoration:none">Consolidated Statements of Stockholders' Equity for the years ended May 31, 2025 and 2024</a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:5.85pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:39.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">(v)</p>
</td><td colspan="2" valign="top" style="width:421.7pt"><p style="font:10pt Times New Roman;margin:0;color:#0000FF;text-align:justify"><span style="border-bottom:1px solid #0000FF"><a href="#a29" title="Click to go to this topic in this filing." style="text-decoration:none">Consolidated Statements of Cash Flows for the years ended May 31, 2025 and 2024</a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:14.4pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:39.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">(vi)</p>
</td><td colspan="2" valign="top" style="width:421.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="#a30" title="Click to go to this topic in this filing." style="text-decoration:none">Notes to Consolidated Financial Statements - May 31, 2025 and 2024</a></span></p>
</td></tr>
<tr style="height:21.6pt"><td colspan="6" valign="top" style="width:517.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">EXHIBITS:</p>
</td></tr>
<tr style="height:5.85pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">3</p>
</td><td colspan="3" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Articles of incorporation and by-laws</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:14.85pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(i)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex3z1.htm" style="text-decoration:none">Restated Certificate of Incorporation, as amended, incorporated by reference to Exhibit 3(i) to the Registrant&#8217;s Annual Report on Form 10-K for the fiscal year ended May 31, 2024, filed August 15, 2024.</a><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex3z1.htm" style="text-decoration:none"> </a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:20.25pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(ii)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653623000002/taydbylaws2022.htm" style="text-decoration:none">By-laws, incorporated by reference to Exhibit 3(v) to the Registrant&#8217;s Quarterly Report on Form 10-Q for the quarterly period ended November 30, 2022, filed January 6, 2023.</a></span> </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:9.9pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">4</p>
</td><td colspan="3" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Instruments defining rights of security holders, including indentures</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:58.5pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(i)</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(ii)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653618000024/form8a2018.htm" style="text-decoration:none">Rights Agreement by and between the Registrant and Computershare Trust Company, N.A., incorporated by reference to Exhibit 4 to the Registrant&#8217;s Registration Statement on Form 8-A, filed October 5, 2018.</a></span> </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653618000024/form8a2018.htm" style="text-decoration:none">Letter to Holders of the Registrant&#8217;s Common Stock, incorporated by reference to Exhibit 20 to the Registrant&#8217;s Registration Statement on Form 8-A, filed October 5, 2018.</a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:22.5pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(iii)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653619000026/descriptionofsecurities.htm" style="text-decoration:none">Description of Registrant&#8217;s Securities, incorporated by reference to Exhibit 4(vi) to the Registrant&#8217;s Annual Report on Form 10-K for the fiscal year ended May 31, 2019, filed August 2, 2019.</a></span></p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:12pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">10</p>
</td><td colspan="2" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Material Contracts</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:11.25pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(i)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653612000033/proxystatement2012.htm" style="text-decoration:none">2012 Taylor Devices, Inc. Stock Option Plan, incorporated by reference to Appendix B to the Registrant&#8217;s Definitive Proxy Statement for the 2012 annual meeting of shareholders, filed September 21, 2012.</a>#</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:14.85pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(ii)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653615000023/proxystatement20152.htm" style="text-decoration:none">2015 Taylor Devices, Inc. Stock Option Plan, incorporated by reference to Appendix B to the Registrant&#8217;s Definitive Proxy Statement for the 2015 annual meeting of shareholders, filed September 25, 2015.#</a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:14.85pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(iii)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653618000023/proxy2018final.htm" style="text-decoration:none">2018 Taylor Devices, Inc. Stock Option Plan, incorporated by reference to Appendix B to the Registrant&#8217;s Definitive Proxy Statement for the 2018 annual meeting of shareholders, filed September 27, 2018.</a>#</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
</table>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">17</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><table style="border-collapse:collapse"><tr style="height:31.05pt"><td valign="top" style="width:24.8pt"><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(iv)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653622000021/proxystatement2022.htm" style="text-decoration:none">2022 Taylor Devices, Inc. Stock Option Plan, incorporated by reference to Appendix A to the Registrant&#8217;s Definitive Proxy Statement for the 2022 annual meeting of shareholders, filed September 6, 2022.</a>#</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:31.05pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(v)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653604000003/espp2004.htm" style="text-decoration:none">The 2004 Taylor Devices, Inc. Employee Stock Purchase Plan, incorporated by reference to Exhibit 4.1 to the Registrant&#8217;s Registration Statement on Form S-8, File No. 333-114085, filed March 31, 2004.</a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:31.05pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(vi)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Letter to 2004 Employee Stock Purchase Plan Participants, incorporated by reference to Exhibit 4.1 to <span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653606000023/posteffectiveamendment.htm" style="text-decoration:none">Post-Effective Amendment No. 1 to the Registrant&#8217;s Registration Statement on Form S-8, File No. 333-114085, filed August 24, 2006.</a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:31.05pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(vii)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Letter to Employees of the Registrant, incorporated by reference to Exhibit 4.2 to <span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653606000023/posteffectiveamendment.htm" style="text-decoration:none">Post-Effective Amendment No. 1 to the Registrant&#8217;s Registration Statement on Form S-8, File No. 333-114085, filed August 24, 2006.</a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:32.4pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(viii)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653607000015/taylor2007proxy.htm" style="text-decoration:none">Form of Indemnification Agreement between the Registrant and its directors and executive officers, incorporated by reference to Appendix A to the Registrant&#8217;s Definitive Proxy Statement for the 2007 annual meeting of shareholders, filed September 27, 2007.</a>#</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:26.1pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(ix)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653611000003/managementbonusplan.htm" style="text-decoration:none">Management Bonus Policy, incorporated by reference to Exhibit 10(i) to the Registrant&#8217;s Quarterly Report on Form 10-Q for the quarterly period ended February 28, 2011, filed April 14, 2011.</a>#</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:26.1pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(x)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex10z10.htm" style="text-decoration:none">Line of Credit Agreement between the Registrant and M&amp;T Bank, dated August 30, 2017,</a></span><b><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex10z10.htm" style="text-decoration:none"> </a></b><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex10z10.htm" style="text-decoration:none">incorporated by reference to Exhibit 10(x) to the Registrant&#8217;s Annual Report on Form 10-K for the fiscal year ended May 31, 2024, filed August 15, 2024.</a><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex10z10.htm" style="text-decoration:none"> </a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:26.1pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(xi)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex10z11.htm" style="text-decoration:none">Amendment to Line of Credit Agreement, dated September 27, 2021,</a></span><b><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex10z11.htm" style="text-decoration:none"> </a></b><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex10z11.htm" style="text-decoration:none">incorporated by reference to Exhibit 10(xi) to the Registrant&#8217;s Annual Report on Form 10-K for the fiscal year ended May 31, 2024, filed August 15, 2024.</a><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex10z11.htm" style="text-decoration:none"> </a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:26.1pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(xii)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#0000FF;text-align:justify"><span style="border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653618000020/arkexhibitto8k.htm" style="text-decoration:none">Employment Agreement dated as of June 14, 2018 between the Registrant and Alan R. Klembczyk, incorporated by reference to Exhibit 10(i) to the Registrant&#8217;s Current Report on Form 8-K, filed June 19, 2018.</a>#</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:26.1pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(xiii)</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#0000FF;text-align:justify"><span style="border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000009653621000012/exhibit10employment.htm" style="text-decoration:none">Employment Agreement dated as of August 9, 2021 between the Registrant and Timothy J. Sopko, incorporated by reference to Exhibit 10 to the Registrant&#8217;s Current Report on Form 8-K, filed August 13, 2021.</a>#</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:26.1pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(xiv)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647423000431/td_ex10z1.htm" style="text-decoration:none">Employment Agreement dated as of September 11, 2023 between the Registrant and Paul M. Heary, incorporated by reference to Exhibit 10 to the Registrant&#8217;s Current Report on Form 8-K, filed September 11, 2023.#</a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:26.1pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(xv)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#0000FF;text-align:justify"><span style="border-bottom:1px solid #0000FF"><a href="td_ex10z14.htm" style="text-decoration:none">Executive Retirement and Transition Agreement dated as of January 14, 2025 between the Registrant and Alan R. Klembczyk.#</a></span></p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:12pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr style="height:20.25pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">19</p>
</td><td colspan="2" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="td_ex19.htm" style="text-decoration:none">Taylor Devices, Inc. Policy Against Insider Trading.*</a></span></p>
</td></tr>
<tr style="height:20.25pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">21</p>
</td><td colspan="2" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Subsidiaries of the Registrant.*</p>
</td></tr>
<tr style="height:30.15pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Tayco Realty Corporation is a New York corporation organized on September 8, 1977, owned by the Company.</p>
</td></tr>
<tr style="height:31.5pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">23</p>
</td><td colspan="2" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="#a33" style="text-decoration:none">Consent of Independent Registered Public Accounting Firm (appears on page </a><a href="#a33" style="text-decoration:none">21</a><a href="#a33" style="text-decoration:none"> immediately preceding the Consolidated Financial Statements).*</a></span></p>
</td></tr>
</table>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">18</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><table style="border-collapse:collapse"><tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">31</p>
</td><td colspan="2" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Officer Certifications*</p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(i)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="td_ex31z1.htm" style="text-decoration:none">Rule 13a-14(a) Certification of Chief Executive Officer.</a></span></p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(ii)</p>
</td><td valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="td_ex31z2.htm" style="text-decoration:none">Rule 13a-14(a) Certification of Chief Financial Officer. </a></span></p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:12pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">32</p>
</td><td colspan="3" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Officer Certifications**</p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(i)</p>
</td><td colspan="2" valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="td_ex32z1.htm" style="text-decoration:none">Section 1350 Certification of Chief Executive Officer.</a></span></p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:31.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">(ii)</p>
</td><td colspan="2" valign="top" style="width:417.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="td_ex32z1.htm" style="text-decoration:none">Section 1350 Certification of Chief Financial Officer.</a></span></p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">97</p>
</td><td colspan="3" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex97.htm" style="text-decoration:none">Policy Relating to Recovery of Erroneously Awarded Compensation,</a></span><b><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex97.htm" style="text-decoration:none"> </a></b><span style="color:#0000FF;border-bottom:1px solid #0000FF"><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex97.htm" style="text-decoration:none">incorporated by reference to Exhibit 97 to the Registrant&#8217;s Annual Report on Form 10-K for the fiscal year ended May 31, 2024, filed August 15, 2024.</a><a href="http://www.sec.gov/Archives/edgar/data/96536/000137647424000456/td_ex97.htm" style="text-decoration:none"> </a></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr style="height:37.75pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">101</p>
</td><td colspan="3" valign="top" style="width:448.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inline XBRL Interactive data files pursuant to Rule 405 of Regulation S-T: (i) Consolidated Balance Sheets, (ii) Consolidated Statements of Income, (iii) Consolidated Statements of Stockholders&#8217; Equity, (iv) Consolidated Statements of Cash Flows, and (v) Notes to Consolidated Financial Statements.</p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">101.SCH</p>
</td><td valign="top" style="width:376.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inline XBRL Taxonomy Extension Schema Document</p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">101.CAL</p>
</td><td valign="top" style="width:376.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inline XBRL Taxonomy Extension Calculation Linkbase Document</p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">101.DEF</p>
</td><td valign="top" style="width:376.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inline XBRL Taxonomy Extension Definition Linkbase Document</p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">101.LAB</p>
</td><td valign="top" style="width:376.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inline XBRL Taxonomy Extension Label Linkbase Document</p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">101.PRE</p>
</td><td valign="top" style="width:376.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inline XBRL Taxonomy Extension Presentation Linkbase Document</p>
</td></tr>
<tr style="height:18pt"><td valign="top" style="width:24.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:43.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td colspan="2" valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">104</p>
</td><td valign="top" style="width:376.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Cover Page Interactive Data File &#8211;&#160;the cover page XBRL tags are embedded within the Inline XBRL document and are contained within Exhibit 101</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><a id="a19"></a><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>* </b>Exhibit filed with this report.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">**Exhibit furnished with this report.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"># Management contract or compensatory plan or arrangement. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Item 16. Form 10-K Summary.</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">None.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">19</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><a id="a20"></a><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>SIGNATURES</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Pursuant to the requirements of Section 13 or 15(d) of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:140.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">TAYLOR DEVICES, INC.</p>
</td><td valign="top" style="width:338.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:140.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">(Registrant)</p>
</td><td valign="top" style="width:338.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">By:</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="border-bottom:1px solid #000000">/s/Timothy J. Sopko</span></p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Date:</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">August 15, 2025</p>
</td></tr>
<tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Timothy J. Sopko</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Chief Executive Officer</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the registrant and in the capacities and on the dates indicated.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">By:</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="border-bottom:1px solid #000000">/s/Timothy J. Sopko</span></p>
</td><td valign="top" style="width:63pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">By:&#160;&#160;&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000"><span style="border-bottom:1px solid #000000">/s/Paul Heary</span></p>
</td></tr>
<tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Timothy J. Sopko</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Chief Executive Officer and Director</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">(Principal Executive Officer)</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">August 15, 2025</p>
</td><td valign="top" style="width:63pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000">Paul Heary</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000">Chief Financial Officer</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000">(Principal Financial Officer and Principal Accounting Officer)</p>
</td></tr>
<tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:63pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000">August 15, 2025</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">By:</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="border-bottom:1px solid #000000">/s/John Burgess</span></p>
</td><td valign="top" style="width:63pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">By:&#160;&#160;&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000"><span style="border-bottom:1px solid #000000">/s/Robert M. Carey</span></p>
</td></tr>
<tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">John Burgess, Director</p>
</td><td valign="top" style="width:63pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000">Robert M. Carey, Director</p>
</td></tr>
<tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">August 15, 2025</p>
</td><td valign="top" style="width:63pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000">August 15, 2025</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse"><tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">By:</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="border-bottom:1px solid #000000">/s/F. Eric Armenat</span></p>
</td><td valign="top" style="width:63pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">By:&#160;&#160;&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000"><span style="border-bottom:1px solid #000000">/s/Alan R. Klembczyk</span></p>
</td></tr>
<tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">F. Eric Armenat, Director</p>
</td><td valign="top" style="width:63pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000">Alan R. Klembczyk, Director</p>
</td></tr>
<tr><td valign="top" style="width:32.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:189pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">August 15, 2025</p>
</td><td valign="top" style="width:63pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:185.4pt"><p style="font:10pt Times New Roman;margin:0;margin-left:-5.4pt;color:#000000">August 15, 2025</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">20</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><a id="a33"></a><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><b>CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">To The Board of Directors of </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Taylor Devices, Inc.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">Gentlemen:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">We hereby consent to the incorporation by reference in this Annual Report on Form 10-K (Commission File Number 0-3498) of Taylor Devices, Inc. of our report dated August 15, 2025 and any reference thereto in the Annual Report to Shareholders for the fiscal year ended May 31, 2025.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">We also consent to such incorporation by reference in Registration Statement Nos. 333-114085, 333-184809, 333-210660, 333-232121, and 333-268120 of Taylor Devices, Inc. on Form S-8 of our report dated August 15, 2025.</p>
<p style="font:11pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="border-bottom:1px solid #000000">/s/Lumsden &amp; McCormick, LLP</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><ix:nonNumeric name="dei:AuditorName" contextRef="D240601_250531" escape="true" id="ixv-7480">Lumsden &amp; McCormick, LLP</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">PCOAB ID: <ix:nonNumeric name="dei:AuditorFirmId" contextRef="D240601_250531" escape="true" id="ixv-7481">130</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><ix:nonNumeric name="dei:AuditorLocation" contextRef="D240601_250531" escape="true" id="ixv-7482">Buffalo, New York</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">August 15, 2025</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">21</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>TAYLOR DEVICES, INC. AND SUBSIDIARY</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>CONSOLIDATED FINANCIAL STATEMENTS</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>May 31, 2025</b></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">F-1</p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><a id="a25"></a><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Board of Directors and Stockholders</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Taylor Devices, Inc.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Opinion on the Financial Statements</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">We have audited the accompanying consolidated balance sheets of Taylor Devices, Inc. and Subsidiary (the Company) as of May 31, 2025 and 2024, and the related consolidated statements of income, stockholders' equity, and cash flows for the years then ended, and the related notes to the consolidated financial statements (collectively referred to as the consolidated financial statements). &#160;In our opinion, the consolidated financial statements present fairly, in all material respects, the financial condition of the Company as of May 31, 2025 and 2024, and the results of its operations and its cash flows for the years then ended in accordance with accounting principles generally accepted in the United States of America.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Basis for Opinion</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">These consolidated financial statements are the responsibility of the Company&#8217;s management. &#160;Our responsibility is to express an opinion on the Company&#8217;s consolidated financial statements based on our audits. &#160;We are a public accounting firm registered with the Public Company Accounting Oversight Board (United States) (PCAOB) and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">We conducted our audits in accordance with the standards of the PCAOB. &#160;Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud. &#160;The Company is not required to have, nor were we engaged to perform, an audit of its internal control over financial reporting. &#160;As part of our audits we are required to obtain an understanding of internal control over financial reporting but not for the purpose of expressing an opinion on the effectiveness of the Company&#8217;s internal control over financial reporting. &#160;Accordingly, we express no such opinion. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Our audits included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures that respond to those risks. &#160;Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. &#160;Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall financial statement presentation. &#160;We believe that our audits provide a reasonable basis for our opinion.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b>Critical Audit Matters</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The critical audit matters communicated below are matters arising from the current period audit of the consolidated financial statements that were communicated or required to be communicated to the audit committee and that: (1) relate to accounts or disclosures that are material to the consolidated financial statements and (2) involved our especially challenging, subjective, or complex judgments. &#160;The communication of critical audit matters does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matters below, providing separate opinions on the critical audit matters or on the accounts or disclosures to which they relate.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-2</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b><i>Cost Estimates for Long-Term Contracts and Related Revenue Recognition</i></b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><i>Description of the Matter</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">As more fully described in Note 1 to the consolidated financial statements, the Company recognizes revenue over time for long-term contracts as goods are produced. &#160;The Company uses costs incurred as the method to determine progress, and revenue is recognized based on costs incurred to date plus an estimate of margin at completion. &#160;The process of estimating margin at completion involves estimating the costs to complete production of goods and comparing those costs to the estimated final revenue amount. &#160;Long-term contracts are inherently uncertain in that revenue is fixed while the estimates of costs required to complete these contracts are subject to significant variability. &#160;Due to the technical performance requirements in many of these contracts, changes to cost estimates could occur, resulting in higher or lower margins when the contracts are completed. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Given the inherent uncertainty and significant judgments necessary to estimate future costs at completion, auditing these estimates involved a focused audit effort and a high degree of auditor judgment.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><i>How We Addressed the Matter in Our Audit</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Our auditing procedures related to the cost estimates for long-term contracts and related revenue recognition included the following, among others:</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We evaluated the appropriateness and consistency of management&#8217;s methods used to develop its estimates.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We evaluated the reasonableness of judgments made and significant assumptions used by management relating to key estimates.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We selected a sample of executed contracts to understand the contract, perform an independent assessment of the appropriate timing of revenue recognition, and test the mathematical accuracy of revenue recognized based on costs incurred to date relative to total estimated costs at completion.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We performed inquiries of the Company&#8217;s project managers and others directly involved with the contracts to evaluate project status and project challenges which may affect total estimated costs to complete. &#160;We also observed the project work site when key estimates related to tangible or physical progress of the project.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We tested the accuracy and completeness of the data used to develop key estimates, including material, labor, overhead, and sub-contractor costs.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We performed retrospective reviews of prior year long-term contracts, comparing actual performance to estimated performance and the related financial statement impact, when evaluating the thoroughness and precision of management&#8217;s estimation process in previous years.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><b><i>Valuation of Inventory</i></b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><i>Description of the Matter</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">As of May 31, 2025, the Company&#8217;s inventory balance was $8.1 million, net of a $23,000 allowance for obsolescence, its maintenance and other inventory balance was $1.1 million, net of an approximate $765,000 allowance for obsolescence. &#160;As discussed in Note 5, maintenance and other inventory represents certain items that are estimated to have a product life-cycle in excess of twelve months the Company is required to maintain for service of products sold and items that are generally subject to spontaneous ordering. &#160;The Company evaluates its inventory for obsolescence on an ongoing basis by considering historical usage as well as requirements for future orders. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Given the inherent uncertainty and significant judgments necessary to estimate potential inventory obsolescence, auditing management&#8217;s estimates involved a high degree of auditor judgment.</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-3</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><i>How We Addressed the Matter in Our Audit</i></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Our auditing procedures related to valuation of inventory included the following, among others:</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We evaluated the appropriateness and consistency of management&#8217;s methods used to develop its estimates.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We evaluated the reasonableness of judgments made and significant assumptions used by management relating to key estimates.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We inquired of management relative to write-offs of inventory during the year.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We tested the completeness and accuracy of management&#8217;s schedule of inventory.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We developed an independent expectation of the obsolescence reserve based on our knowledge of the Company&#8217;s inventory, including analysis of slow-moving items and historical usage and compared it to actual.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We examined management&#8217;s lower of cost or net realizable value analysis and performed procedures to test its completeness and accuracy.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>We selected a sample of material purchases made during the year to ensure they were included in inventory at the proper value.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000;text-align:justify"><kbd style="position:absolute;font:10pt Symbol;margin-left:-18pt">&#183;</kbd>During our physical inventory observation, we toured the Company&#8217;s warehouses and examined inventory on hand for any indications of obsolescence.&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="border-bottom:1px solid #000000">/s/Lumsden &amp; McCormick, LLP</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><ix:nonNumeric name="dei:AuditorName" contextRef="D240601_250531" escape="true" id="ixv-7483">Lumsden &amp; McCormick, LLP</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">PCOAB ID: <ix:nonNumeric name="dei:AuditorFirmId" contextRef="D240601_250531" escape="true" id="ixv-7484">130</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">We have served as the Company&#8217;s auditor since 1998.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><ix:nonNumeric name="dei:AuditorLocation" contextRef="D240601_250531" escape="true" id="ixv-7485">Buffalo, New York</ix:nonNumeric></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">August 15, 2025</p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-4</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><a id="a26"></a><p style="font:12pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse;margin-left:-0.75pt"><tr style="height:15pt"><td colspan="4" valign="bottom" style="width:275.25pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">TAYLOR DEVICES, INC. AND SUBSIDIARY</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>&#160;</b></p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:7.2pt"><td colspan="3" valign="bottom" style="width:151.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:123.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Consolidated Balance Sheets</b></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:7.2pt"><td colspan="4" valign="bottom" style="width:275.25pt"/><td valign="bottom" style="width:85.5pt"/><td valign="bottom" style="width:73.35pt"/></tr>
<tr style="height:15pt"><td colspan="4" valign="bottom" style="width:275.25pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">May 31,</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="3" valign="bottom" style="width:151.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:123.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Assets</b></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:8.25pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Current assets:</b></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:14.4pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Cash and cash equivalents</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7486">1,190,656</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7487">2,831,471</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:4.65pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Short-term investments</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:ShortTermInvestments" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7488">34,799,367</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:ShortTermInvestments" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7489">28,131,279</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:4.65pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Accounts and other receivables, net (<ix:footnote id="Note2" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">Note 2</ix:footnote>)</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:AccountsAndOtherReceivablesNetCurrent" contextRef="I250531" id="fact5" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">5,599,785</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:AccountsAndOtherReceivablesNetCurrent" contextRef="I240531" id="fact6" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">5,212,408</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:9.6pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Inventory (<ix:footnote id="Note3" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">Note 3</ix:footnote>)</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:InventoryPartsAndComponentsNetOfReserves" contextRef="I250531" id="fact7" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">8,113,321</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:InventoryPartsAndComponentsNetOfReserves" contextRef="I240531" id="fact8" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">7,512,052</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:9.9pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Prepaid expenses</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:PrepaidExpenseCurrent" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7496">1,124,878</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:PrepaidExpenseCurrent" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7497">725,506</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:13.65pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Prepaid income taxes</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:OtherAssetsCurrent" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7498">94,333</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:OtherAssetsCurrent" contextRef="I240531" decimals="128" unitRef="USD" format="ixt:fixed-zero" id="ixv-7499">-</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:8.25pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Costs and estimated earnings in excess of billings (<ix:footnote id="Note4" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US" continuedAt="c1">Note 4</ix:footnote>)</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:CostsInExcessOfBillingsOnUncompletedContractsOrPrograms" contextRef="I250531" id="fact9" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">5,360,499</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:CostsInExcessOfBillingsOnUncompletedContractsOrPrograms" contextRef="I240531" id="fact10" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">4,356,565</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:220.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><span style="color:#000000"><b>Total current assets</b></span></p>
</td><td valign="bottom" style="width:85.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:AssetsCurrent" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7503">56,282,839</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:AssetsCurrent" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7504">48,769,281</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:7.35pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.75pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Maintenance and other inventory, net (<ix:footnote id="Note5" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">Note 5</ix:footnote>)</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:OtherInventoryNoncurrent" contextRef="I250531" id="fact11" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">1,107,875</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:OtherInventoryNoncurrent" contextRef="I240531" id="fact12" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">1,579,829</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:9.6pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Property and equipment, net (<ix:footnote id="Note6" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">Note 6</ix:footnote>)</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="I250531" id="fact13" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">12,074,172</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="I240531" id="fact14" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">11,180,933</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Patents, net</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7511">270,370</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7512">292,593</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Cash value of life insurance, net</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:OtherAssetsMiscellaneousNoncurrent" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7513">219,444</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:OtherAssetsMiscellaneousNoncurrent" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7514">214,824</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:2.75pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Other assets</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:OtherAssetsNoncurrent" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7515">65,420</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:OtherAssetsNoncurrent" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7516">27,343</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:2.75pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred income taxes (<ix:footnote id="Note10" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US" continuedAt="c2">Note 10</ix:footnote>)</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" contextRef="I250531" id="fact15" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">1,598,000</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" contextRef="I240531" id="fact16" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">1,012,615</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:2.75pt"><td colspan="4" valign="bottom" style="width:275.25pt"/><td valign="bottom" style="width:85.5pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:Assets" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7520">71,618,120</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:Assets" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7521">63,077,418</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Liabilities and Stockholders' Equity</b></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Current liabilities:</b></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:6.9pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Accounts payable</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:AccountsPayableCurrent" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7522">1,119,240</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:AccountsPayableCurrent" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7523">1,438,847</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Accrued expenses (<ix:footnote id="Note8" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">Note 8</ix:footnote>)</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="I250531" id="fact17" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">4,072,436</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="I240531" id="fact18" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">4,664,463</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:6pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Billings in excess of costs and estimated earnings (<ix:continuation id="c1">Note 4</ix:continuation>)</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:BillingsInExcessOfCostCurrent" contextRef="I250531" id="fact19" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">4,382,067</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:BillingsInExcessOfCostCurrent" contextRef="I240531" id="fact20" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">5,601,274</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:6pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Accrued income taxes</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:AccruedIncomeTaxes" contextRef="I250531" decimals="128" unitRef="USD" format="ixt:fixed-zero" id="ixv-7530">-</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:AccruedIncomeTaxes" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7531">126,148</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:220.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><span style="color:#000000"><b>Total current liabilities</b></span></p>
</td><td valign="bottom" style="width:85.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:LiabilitiesCurrent" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7532">9,573,743</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:LiabilitiesCurrent" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7533">11,830,732</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b> </b>&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Stockholders' Equity:</b></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:21.6pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;text-indent:-9pt;margin-left:9pt;color:#000000">Common stock, $<ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" contextRef="I250531" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7534"><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" contextRef="I240531" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7535">0.025</ix:nonFraction></ix:nonFraction> par value, authorized <ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" contextRef="I250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7536"><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" contextRef="I240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7537">8,000,000</ix:nonFraction></ix:nonFraction> shares, issued <ix:nonFraction name="us-gaap:CommonStockSharesIssued" contextRef="I250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7538"><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" contextRef="I250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7539">4,196,470</ix:nonFraction></ix:nonFraction> and <ix:nonFraction name="us-gaap:CommonStockSharesIssued" contextRef="I240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7540"><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" contextRef="I240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7541">4,165,315</ix:nonFraction></ix:nonFraction> shares</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:CommonStockValue" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7542">104,835</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:CommonStockValue" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7543">104,056</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Paid-in capital</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:AdditionalPaidInCapital" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7544">14,544,580</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:AdditionalPaidInCapital" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7545">12,959,531</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Retained earnings</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7546">60,540,154</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7547">51,127,018</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b>75,189,569&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt">64,190,605&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Treasury stock &#8211;&#160;<ix:nonFraction name="us-gaap:TreasuryStockCommonShares" contextRef="I250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7548">1,051,688</ix:nonFraction> and <ix:nonFraction name="us-gaap:TreasuryStockCommonShares" contextRef="I240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7549">1,046,742</ix:nonFraction> shares at cost</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b>(<ix:nonFraction name="us-gaap:TreasuryStockValue" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7550">13,145,192</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt">(<ix:nonFraction name="us-gaap:TreasuryStockValue" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7551">12,943,919</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:220.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><span style="color:#000000"><b>Total stockholders' equity</b></span></p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:1pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7552">62,044,377</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:1pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7553">51,246,686</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:9.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:LiabilitiesAndStockholdersEquity" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7554">71,618,120</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:LiabilitiesAndStockholdersEquity" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7555">63,077,418</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:12.75pt"><td valign="bottom" style="width:9.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td colspan="4" valign="bottom" style="width:275.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><i>See notes to consolidated financial statements.</i></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-5</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><a id="a27"></a><p style="font:12pt Times New Roman;margin:0;color:#000000">&#160;</p>
<table style="border-collapse:collapse;width:435.1pt"><tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">TAYLOR DEVICES, INC. AND SUBSIDIARY</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>&#160;</b></p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;margin-right:11.6pt;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;margin-right:11.6pt;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Consolidated Statements of Income</b></p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;margin-right:11.6pt;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:76.25pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:95.45pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;margin-right:11.6pt;color:#000000;text-align:center">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">For the years ended May 31,</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;margin-right:11.6pt;color:#000000;text-align:center">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"/><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"/><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;margin-right:11.6pt;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"/></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;margin-right:11.6pt;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Sales, net (<ix:footnote id="Note9" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">Note 9</ix:footnote>)</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:Revenues" contextRef="D240601_250531" id="fact21" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">46,292,725</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:5pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:Revenues" contextRef="D230601_240531" id="fact22" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">44,582,807</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Cost of goods sold</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:CostOfGoodsAndServicesSold" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7559">24,814,581</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:CostOfGoodsAndServicesSold" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7560">23,743,554</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b> &#160;&#160;&#160;&#160;Gross profit</b></p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:GrossProfit" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7561">21,478,144</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:GrossProfit" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7562">20,839,253</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Research and development costs</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7563">444,000</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7564">388,476</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Selling, general and administrative expenses</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:SellingGeneralAndAdministrativeExpense" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7565">11,406,817</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:SellingGeneralAndAdministrativeExpense" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7566">10,971,358</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b> &#160;&#160;&#160;&#160;Operating income </b></p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:OperatingIncomeLoss" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7567">9,627,327</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="bottom" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:OperatingIncomeLoss" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7568">9,479,419</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Other income </p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"> &#160;&#160;Interest, net</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:InvestmentIncomeInterest" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7569">1,402,440</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="bottom" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:InvestmentIncomeInterest" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7570">1,426,584</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"> &#160;&#160;Miscellaneous</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:OtherNonoperatingIncomeExpense" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7571">3,369</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="bottom" style="width:10.2pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="margin-left:5pt"></kbd> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ix:nonFraction name="us-gaap:OtherNonoperatingIncomeExpense" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7572">14,759</ix:nonFraction>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Total other income, net </p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:NonoperatingIncomeExpense" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7573">1,405,809</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="bottom" style="width:10.2pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:NonoperatingIncomeExpense" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7574">1,441,343</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><span style="color:#000000"> &#160;&#160;&#160;&#160;</span><b>Income before provision for income taxes</b></p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7575">11,033,136</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7576">10,920,762</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Provision for income taxes (<ix:continuation id="c2">Note 10</ix:continuation>)</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" contextRef="D240601_250531" id="fact23" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">1,620,000</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="bottom" style="width:10.2pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" contextRef="D230601_240531" id="fact24" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal">1,922,000</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15.75pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b> &#160;&#160;&#160;&#160;Net income</b></p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt;border-bottom:1pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7580">9,413,136</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt;border-bottom:1pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt;border-bottom:1pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:5pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7581">8,998,762</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15.75pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Basic earnings per common share (<ix:footnote id="Note11" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US" continuedAt="c3">Note 11</ix:footnote>)</p>
</td><td colspan="2" valign="middle" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:EarningsPerShareBasic" contextRef="D240601_250531" id="fact25" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal">3.01</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="middle" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:5pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" contextRef="D230601_240531" id="fact26" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal">2.68</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15.75pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Diluted earnings per common share (<ix:continuation id="c3">Note 11</ix:continuation>)</p>
</td><td colspan="2" valign="middle" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:71pt"><b><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" contextRef="D240601_250531" id="fact27" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal">2.87</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="middle" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:5pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:65pt"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" contextRef="D230601_240531" id="fact28" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal">2.58</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:15.75pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;margin-right:11.6pt;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:4pt"><td valign="bottom" style="width:263.4pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><i>See notes to consolidated financial statements.</i></p>
</td><td colspan="2" valign="bottom" style="width:84.85pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td valign="top" style="width:10.2pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;margin-right:11.6pt;color:#000000;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:76.65pt;padding-right:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
</table>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-6</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><a id="a28"></a><p style="font:12pt Times New Roman;margin:0;color:#000000">&#160;</p>
</div>
<div style="margin-left:54pt"><table style="border-collapse:collapse;margin-left:-0.75pt"><tr style="height:15pt"><td colspan="4" valign="bottom" style="width:268.05pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">TAYLOR DEVICES, INC. AND SUBSIDIARY</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>&#160;</b></p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:7.2pt"><td colspan="3" valign="bottom" style="width:144.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:123.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td colspan="4" valign="bottom" style="width:268.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Consolidated Statements of Stockholders&#8217; Equity</b></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:7.2pt"><td colspan="3" valign="bottom" style="width:144.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:123.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td colspan="4" valign="bottom" style="width:268.05pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">For the years ended May 31,</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:268.05pt"/><td valign="bottom" style="width:85.5pt"/><td valign="bottom" style="width:73.35pt"/></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:268.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Common Stock</b></p>
</td><td valign="middle" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="middle" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:14.4pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Beginning of period</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I240531_StEqComps-CommonStock" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7588">104,056</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I230531_StEqComps-CommonStock" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7589">102,127</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:4.65pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Issuance of shares for employee stock purchase plan</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" contextRef="D240601_250531_StEqComps-CommonStock" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7590">4</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" contextRef="D230601_240531_StEqComps-CommonStock" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7591">10</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:4.65pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Issuance of shares for employee stock option plan</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan" contextRef="D240601_250531_StEqComps-CommonStock" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7592">775</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan" contextRef="D230601_240531_StEqComps-CommonStock" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7593">1,919</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:9.6pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">End of period</p>
</td><td valign="bottom" style="width:85.5pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I250531_StEqComps-CommonStock" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7594">104,835</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I240531_StEqComps-CommonStock" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7595">104,056</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:6.9pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:268.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Paid-in Capital</b></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:13.65pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Beginning of period</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I240531_StEqComps-AddPaidInCap" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7596">12,959,531</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I230531_StEqComps-AddPaidInCap" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7597">10,947,089</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:8.25pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Issuance of shares for employee stock purchase plan</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" contextRef="D240601_250531_StEqComps-AddPaidInCap" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7598">6,432</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" contextRef="D230601_240531_StEqComps-AddPaidInCap" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7599">9,904</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:8.25pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Issuance of shares for employee stock option plan</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan" contextRef="D240601_250531_StEqComps-AddPaidInCap" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7600">356,108</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan" contextRef="D230601_240531_StEqComps-AddPaidInCap" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7601">955,286</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:8.25pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Stock options issued for services</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition" contextRef="D240601_250531_StEqComps-AddPaidInCap" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7602">1,222,509</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition" contextRef="D230601_240531_StEqComps-AddPaidInCap" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7603">1,047,252</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:103.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">End of period</p>
</td><td colspan="2" valign="bottom" style="width:162pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:85.5pt;border-top:0.5pt solid #000000;border-bottom:3pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I250531_StEqComps-AddPaidInCap" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7604">14,544,580</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:0.5pt solid #000000;border-bottom:3pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><span style="color:#000000"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I240531_StEqComps-AddPaidInCap" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7605">12,959,531</ix:nonFraction>&#160;</span></kbd>&#160;</p>
</td></tr>
<tr style="height:7.35pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:268.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Retained Earnings</b></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:13.65pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Beginning of period</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I240531_StEqComps-RetainedEarnings" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7606">51,127,018</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I230531_StEqComps-RetainedEarnings" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7607">42,128,256</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:8.25pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Net income</p>
</td><td valign="bottom" style="width:85.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="D240601_250531_StEqComps-RetainedEarnings" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7608">9,413,136</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="D230601_240531_StEqComps-RetainedEarnings" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7609">8,998,762</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:8.25pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">End of period</p>
</td><td valign="bottom" style="width:85.5pt;border-top:0.5pt solid #000000;border-bottom:3pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I250531_StEqComps-RetainedEarnings" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7610">60,540,154</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:0.5pt solid #000000;border-bottom:3pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I240531_StEqComps-RetainedEarnings" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7611">51,127,018</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.75pt"><td colspan="4" valign="bottom" style="width:268.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:85.5pt;border-top:3pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:3pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:268.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Treasury Stock</b></p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:6.9pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Beginning of period</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b>(<ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I240531_StEqComps-TreasuryStockCommon" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7612">12,943,919</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt">(<ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I230531_StEqComps-TreasuryStockCommon" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7613">3,084,742</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:6.9pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Issuance of shares for employee stock option plan</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b>(<ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan" contextRef="D240601_250531_StEqComps-TreasuryStockCommon" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7614">201,273</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt">(<ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan" contextRef="D230601_240531_StEqComps-TreasuryStockCommon" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7615">715,599</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:6.9pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Repurchase of shares</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="D240601_250531_StEqComps-TreasuryStockCommon" decimals="128" unitRef="USD" format="ixt:fixed-zero" id="ixv-7616">-</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt">(<ix:nonFraction name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="D230601_240531_StEqComps-TreasuryStockCommon" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7617">9,143,578</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:8.25pt"><td valign="bottom" style="width:2.55pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">End of period</p>
</td><td valign="bottom" style="width:85.5pt;border-top:0.5pt solid #000000;border-bottom:3pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b>(<ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I250531_StEqComps-TreasuryStockCommon" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7618">13,145,192</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:0.5pt solid #000000;border-bottom:3pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt">(<ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I240531_StEqComps-TreasuryStockCommon" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7619">12,943,919</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="4" valign="bottom" style="width:268.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:85.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:73.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:2.55pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="3" valign="bottom" style="width:265.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;text-indent:7.4pt;margin-left:-9pt;color:#000000">&#160;<span style="color:#000080"><b>Total</b><b> stockholders' equity</b></span></p>
</td><td valign="bottom" style="width:85.5pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:79pt"><b><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7620">62,044,377</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:73.35pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:67pt"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7621">51,246,686</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:12pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000"><i>See notes to consolidated financial statements</i></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-7</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><a id="a29"></a><p style="font:12pt Times New Roman;margin:0;color:#000000">&#160;</p>
<table style="border-collapse:collapse;width:455.25pt;margin-left:-0.75pt"><tr style="height:15pt"><td colspan="6" valign="bottom" style="width:284.25pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">TAYLOR DEVICES, INC. AND SUBSIDIARY</p>
</td><td valign="bottom" style="width:94.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>&#160;</b></p>
</td><td valign="bottom" style="width:76.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:15pt"><td colspan="6" valign="bottom" style="width:284.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Consolidated Statements of Cash Flows</b></p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:4.65pt"><td colspan="6" valign="bottom" style="width:284.25pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">For the years ended May 31,</p>
</td><td valign="bottom" style="width:94.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="bottom" style="width:76.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr style="height:7.2pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:261.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="6" valign="bottom" style="width:284.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Operating activities:</b></p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="5" valign="bottom" style="width:278.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Net income</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7622">9,413,136</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7623">8,998,762</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="6" valign="bottom" style="width:373pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><span style="color:#000000">Adjustments to reconcile net income to net cash flows from operating activities:</span></p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.6pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="4" valign="bottom" style="width:272.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Depreciation</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:Depreciation" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7624">1,708,849</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:Depreciation" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7625">1,690,239</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="4" valign="bottom" style="width:272.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Amortization</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:AcquisitionCosts" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7626">22,223</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:AcquisitionCosts" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7627">7,407</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="4" valign="bottom" style="width:272.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Stock options issued for services</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:StockOptionPlanExpense" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7628">1,222,509</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:StockOptionPlanExpense" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7629">1,047,252</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="4" valign="bottom" style="width:272.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Credit loss expense</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:GainsLossesOnExtinguishmentOfDebt" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7630">535,000</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:GainsLossesOnExtinguishmentOfDebt" contextRef="D230601_240531" decimals="128" unitRef="USD" format="ixt:fixed-zero" id="ixv-7631">-</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="4" valign="bottom" style="width:272.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Provision for inventory obsolescence</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:GainLossOnCondemnation" contextRef="D240601_250531" decimals="128" unitRef="USD" format="ixt:fixed-zero" id="ixv-7632">-</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:GainLossOnCondemnation" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7633">385,744</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="4" valign="bottom" style="width:272.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred income taxes</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:DeferredIncomeTaxesAndTaxCredits" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7634">585,385</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:DeferredIncomeTaxesAndTaxCredits" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7635">444,000</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="4" valign="bottom" style="width:272.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Changes in other assets and liabilities:</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:4pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:7.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Accounts and other receivables</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsReceivable" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7636">922,377</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsReceivable" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7637">341,096</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:7.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Inventory</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7638">129,315</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7639">2,533,181</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:7.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Prepaid expenses</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInPrepaidExpense" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7640">399,372</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInPrepaidExpense" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7641">285,899</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:7.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Prepaid income taxes</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherCurrentAssets" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7642">94,333</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherCurrentAssets" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7643">228,947</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:7.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Costs and estimated earnings in excess of billings</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherOperatingLiabilities" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7644">1,003,934</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherOperatingLiabilities" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7645">232,383</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:7.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Accounts payable</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayableTrade" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7646">319,607</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayableTrade" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7647">278,810</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:7.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Accrued expenses</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedLiabilities" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7648">592,027</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedLiabilities" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7649">586,141</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:7.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Billings in excess of costs and estimated earnings</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInBillingInExcessOfCostOfEarnings" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7650">1,219,207</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:IncreaseDecreaseInBillingInExcessOfCostOfEarnings" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7651">3,608,804</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:7.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Accrued income taxes</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7652">126,148</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7653">126,148</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:7.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:265.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Other assets</p>
</td><td valign="bottom" style="width:94.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7654">38,077</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7655">27,343</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:261.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Net operating activities</b></p>
</td><td valign="bottom" style="width:94.5pt;border-top:0.5pt solid #000000;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInOperatingActivities" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7656">7,471,935</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-top:0.5pt solid #000000;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInOperatingActivities" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7657">13,218,924</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:7.2pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:261.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:94.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:4.65pt"><td colspan="6" valign="bottom" style="width:284.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Investing activities:</b></p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="5" valign="bottom" style="width:278.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Acquisition of property and equipment</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7658">2,602,088</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7659">1,149,388</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="5" valign="bottom" style="width:278.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Patent expenditures</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:PaymentsToAcquireIntangibleAssets" contextRef="D240601_250531" decimals="128" unitRef="USD" format="ixt:fixed-zero" id="ixv-7660">-</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:PaymentsToAcquireIntangibleAssets" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7661">300,000</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="5" valign="bottom" style="width:278.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Increase in short-term investments</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:PaymentsToAcquireOtherInvestments" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7662">6,668,088</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:PaymentsToAcquireOtherInvestments" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7663">3,616,522</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="5" valign="bottom" style="width:278.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Increase in cash value of life insurance</p>
</td><td valign="bottom" style="width:94.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:PaymentsForProceedsFromOtherInvestingActivities" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7664">4,620</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:PaymentsForProceedsFromOtherInvestingActivities" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7665">4,704</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:2.75pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:261.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Net investing activities</b></p>
</td><td valign="bottom" style="width:94.5pt;border-top:0.5pt solid #000000;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInInvestingActivities" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7666">9,274,796</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInInvestingActivities" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7667">5,070,614</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:7.2pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:5.75pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:261.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:94.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="6" valign="bottom" style="width:284.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Financing activities:</b></p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:11.5pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="5" valign="bottom" style="width:278.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Proceeds from issuance of common stock</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:ProceedsFromIssuanceOfCommonStock" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7668">363,319</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:ProceedsFromIssuanceOfCommonStock" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7669">967,119</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:11.5pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="5" valign="bottom" style="width:278.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Acquisition of treasury stock</p>
</td><td valign="bottom" style="width:94.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:PaymentsForRepurchaseOfCommonStock" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7670">201,273</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:PaymentsForRepurchaseOfCommonStock" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7671">9,859,177</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:14.9pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="5" valign="bottom" style="width:278.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><span style="color:#000080"><b> &#160;&#160;&#160;&#160;&#160;Net financing activities</b></span></p>
</td><td valign="bottom" style="width:94.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInFinancingActivities" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7672">162,046</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInFinancingActivities" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7673">8,892,058</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:7.2pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:261.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:94.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:261.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Net change in cash and cash equivalents</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b>(<ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7674">1,640,815</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt">(<ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7675">743,748</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
<tr style="height:7.2pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:261.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="6" valign="bottom" style="width:284.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Cash and cash equivalents - beginning</p>
</td><td valign="bottom" style="width:94.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7676">2,831,471</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" contextRef="I230531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7677">3,575,219</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:18.85pt"><td valign="bottom" style="width:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:5.75pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:261.25pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">Cash and cash equivalents - ending</p>
</td><td valign="bottom" style="width:94.5pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:87pt"><b><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7678">1,190,656</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:69pt"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7679">2,831,471</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr style="height:10.8pt"><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:5.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:261.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:94.5pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:76.5pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td colspan="6" valign="bottom" style="width:284.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><i>See notes to consolidated financial statements.</i></p>
</td><td valign="bottom" style="width:94.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:76.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
</table>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-8</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/></div>
<div style="margin-left:54pt"><a id="a30"></a><table style="border-collapse:collapse;margin-left:-17.6pt"><tr style="height:7.5pt"><td valign="top" style="width:522pt"><p style="font:11pt Times New Roman;margin:0;color:#000000;text-align:justify">TAYLOR DEVICES, INC. AND SUBSIDIARY</p>
</td></tr>
<tr style="height:3.25pt"><td valign="top" style="background-color:#FFFFFF;width:522pt;border-top:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#7F7F7F">&#160;</p>
</td></tr>
<tr style="height:3.25pt"><td valign="top" style="background-color:#FFFFFF;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Notes to Consolidated Financial Statements</b></p>
</td></tr>
<tr style="height:7.5pt"><td valign="top" style="width:522pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
</table>
</div>
<div style="margin-left:54pt;width:522pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:SignificantAccountingPoliciesTextBlock" contextRef="D240601_250531" escape="true" continuedAt="c4" id="ixv-4674"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>1. &#160;Summary of Significant Accounting Policies:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:NatureOfOperations" contextRef="D240601_250531" escape="true" id="ixv-4678"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Nature of Operations:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. &#160;These similar products are included in one of nine categories; namely, Seismic Dampers, Fluidicshoks&#174;, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs, Custom Shock and Vibration Isolators, and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. &#160;The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The chief operating decision maker is the Chief Executive Officer who assesses performance for the business (and lone segment) and decides how to allocate resources based on net income as reported in a format consistent with the consolidated statements of income included in these consolidated financial statements. The measure of segment assets is as reported on the consolidated balance sheets in these consolidated financial statements.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">79% of the Company's 2025 revenue was generated from sales to customers in the United States and 15% was from sales to customers in Asia. &#160;Remaining sales were to customers in other countries in North America, Europe, Australia, and South America.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">86% of the Company's 2024 revenue was generated from sales to customers in the United States and 4% was from sales to customers in Asia. &#160;Remaining sales were to customers in other countries in North America, Europe, Australia, and South America.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:ConsolidationPolicyTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4690"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Principles of Consolidation:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). &#160;All inter-company transactions and balances have been eliminated in consolidation.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:SubsequentEventsPolicyPolicyTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4696"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Subsequent Events:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.</span></p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:UseOfEstimates" contextRef="D240601_250531" escape="true" id="ixv-4703"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Use of Estimates:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. &#160;Actual results could differ from those estimates.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4709"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Cash and Cash Equivalents:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.</p>
</ix:nonNumeric></ix:nonNumeric><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-9</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><ix:continuation id="c4" continuedAt="c5"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<ix:nonNumeric name="us-gaap:CashCashEquivalentsAndShortTermInvestmentsTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4724"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Short-Term Investments:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2025 and May 31, 2024 include money market funds, U.S. treasury securities and corporate bonds stated at fair value, which approximates cost. &#160;Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes.&#160;Realized gains and losses on the sale of investments are determined using the specific identification method.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The short-term investments are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
<ix:nonNumeric name="us-gaap:TradeAndOtherAccountsReceivablePolicy" contextRef="D240601_250531" escape="true" id="ixv-4732"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Accounts and Other Receivables:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. &#160;Management provides for estimated credit losses through a charge to expense and a credit to a valuation allowance based on its assessment of the current status of individual accounts. &#160;Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:InventoryPolicyTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4738"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Inventory:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4744"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Property and Equipment:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">Property and equipment is stated at cost net of accumulated depreciation. &#160;Depreciation is provided primarily using the straight-line method for financial reporting purposes and accelerated methods for income tax reporting purposes. &#160;Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.</span></p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:LifeInsuranceCorporateOrBankOwnedTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4751"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Cash Value of Life Insurance:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Cash value of life insurance is stated at the surrender value of the contracts.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:RevenueRecognitionPolicyTextBlock" contextRef="D240601_250531" escape="true" continuedAt="c6" id="ixv-4757"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Revenue Recognition:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract&#8217;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of the Company&#8217;s contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations. &#160;</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying the Company&#8217;s performance obligations. &#160;Incurred costs represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. &#160;Contract costs include labor, material and overhead. &#160;Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. &#160;Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. &#160;In the year ended May 31, 2025, 68% of revenue was recorded for contracts in which revenue was recognized over time while 32% was recognized at a point in time. &#160;In the year ended May 31, 2024, 59% of revenue was recorded for contracts in which revenue was recognized over time while 41% was recognized at a point in time. </p>
</ix:nonNumeric></ix:continuation><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-10</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><ix:continuation id="c5" continuedAt="c7"><ix:continuation id="c6"><p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">Progress payments are typically negotiated for longer term projects. &#160;Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). &#160;For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. &#160;The asset, &#8220;costs and estimated earnings in excess of billings,&#8221; represents revenues recognized in excess of amounts billed. &#160;The liability, &#8220;billings in excess of costs and estimated earnings,&#8221; represents billings in excess of revenues recognized.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">If applicable, the Company recognizes an asset for the incremental material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. &#160;As of May 31, 2025 and 2024, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. &#160;These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.</p>
</ix:continuation><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:ShippingAndHandlingCostPolicyTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4775"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Shipping and Handling Costs:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $239,182 and $190,939 for the years ended May 31, 2025 and 2024. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<ix:nonNumeric name="us-gaap:IncomeTaxPolicyTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4781"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Income Taxes:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. &#160;Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. &#160;Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. &#160;The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2025 and 2024. &#160;The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2025 and 2024. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2022.</span></p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:RegulatoryIncomeTaxesPolicy" contextRef="D240601_250531" escape="true" id="ixv-4792"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Sales Taxes:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. &#160;The Company collects these taxes from customers and remits the entire amount as required by the applicable law. &#160;The Company excludes from revenues and expenses the tax collected and remitted.</span></p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" contextRef="D240601_250531" escape="true" id="ixv-4799"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Stock-Based Compensation:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2025 and 2024 was $<ix:nonFraction name="us-gaap:StockOptionPlanExpense" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7680">1,222,509</ix:nonFraction> and $<ix:nonFraction name="us-gaap:StockOptionPlanExpense" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7681">1,047,252</ix:nonFraction>.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</ix:continuation><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-11</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><ix:continuation id="c7"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<ix:nonNumeric name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4813"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>New Accounting Standards:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Any recently issued Accounting Standards Codification (ASC) guidance has either been implemented or is not significant to the Company.</p>
</ix:nonNumeric></ix:continuation><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<ix:nonNumeric name="us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4819"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>2. &#160;Accounts and Other Receivables:</b></p>
<ix:nonNumeric name="us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4822"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:347.7pt"><tr><td valign="top" style="width:220.7pt;border-bottom:0.75pt solid #000000"/><td valign="top" style="width:55pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:4.7pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.3pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:220.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Customers</p>
</td><td valign="top" style="width:55pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b><ix:nonFraction name="us-gaap:AccountsReceivableGrossCurrent" contextRef="I250531_MajCust-Customers" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7682">6,164,251</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:AccountsReceivableGrossCurrent" contextRef="I240531_MajCust-Customers" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7683">5,241,874</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Customers &#8211;&#160;retention</p>
</td><td valign="top" style="width:55pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b><ix:nonFraction name="us-gaap:AccountsReceivableGrossCurrent" contextRef="I250531_MajCust-CustomersRetention" decimals="128" unitRef="USD" format="ixt:fixed-zero" id="ixv-7684">-</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:AccountsReceivableGrossCurrent" contextRef="I240531_MajCust-CustomersRetention" decimals="128" unitRef="USD" format="ixt:fixed-zero" id="ixv-7685">-</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.7pt"/><td valign="top" style="width:55pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b><ix:nonFraction name="us-gaap:AccountsReceivableGrossCurrent" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7686">6,164,251</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.3pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:AccountsReceivableGrossCurrent" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7687">5,241,874</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Less allowance for estimated credit losses</p>
</td><td valign="top" style="width:55pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7688">564,466</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7689">29,466</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.7pt"/><td valign="top" style="width:55pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b><ix:nonFraction name="us-gaap:AccountsAndOtherReceivablesNetCurrent" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7690">5,599,785</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.3pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:AccountsAndOtherReceivablesNetCurrent" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7691">5,212,408</ix:nonFraction></kbd>&#160;</p>
</td></tr>
</table>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Retention receivable from customers represents amounts invoiced to customers where payments have been partially withheld pending completion of the project. &#160;The Company increased its allowance for estimated credit losses due to the uncertainty of collecting a $751,000 balance overdue on a structural project. &#160;The Company is in discussion with the customer regarding payment of this balance.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">All other amounts are expected to be collected within the next fiscal year.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:InventoryDisclosureTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4903"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>3. &#160;Inventory:</b></p>
<ix:nonNumeric name="us-gaap:ScheduleOfUtilityInventoryTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4906"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="top" style="width:220.1pt;border-bottom:0.75pt solid #000000"/><td valign="top" style="width:68.05pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:4.7pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:220.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Raw materials</p>
</td><td valign="top" style="width:68.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:InventoryGross" contextRef="I250531_PublicUtilitiesInventory-PublicUtilitiesInventoryRawMaterials" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7692">627,616</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:InventoryGross" contextRef="I240531_PublicUtilitiesInventory-PublicUtilitiesInventoryRawMaterials" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7693">886,947</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Work-in-process</p>
</td><td valign="top" style="width:68.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:InventoryGross" contextRef="I250531_PublicUtilitiesInventory-WorkInProcess" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7694">7,222,613</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:InventoryGross" contextRef="I240531_PublicUtilitiesInventory-WorkInProcess" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7695">6,412,497</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Finished goods</p>
</td><td valign="top" style="width:68.05pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:InventoryGross" contextRef="I250531_PublicUtilitiesInventory-FinishedGoods" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7696">286,092</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:InventoryGross" contextRef="I240531_PublicUtilitiesInventory-FinishedGoods" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7697">271,608</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.1pt"/><td valign="top" style="width:68.05pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:InventoryGross" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7698">8,136,321</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:InventoryGross" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7699">7,571,052</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Less allowance for obsolescence</p>
</td><td valign="top" style="width:68.05pt;border-bottom:1pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:InventoryAdjustments" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7700">23,000</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt;border-bottom:1pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt;border-bottom:1pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:InventoryAdjustments" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7701">59,000</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.1pt;border-bottom:0.5pt solid #000000"/><td valign="top" style="width:68.05pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:InventoryNet" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7702">8,113,321</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:InventoryNet" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7703">7,512,052</ix:nonFraction></kbd>&#160;</p>
</td></tr>
</table>
</ix:nonNumeric></ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
<ix:nonNumeric name="us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock" contextRef="D240601_250531" escape="true" continuedAt="c8" id="ixv-4995"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>4. &#160;Costs and Estimated Earnings on Uncompleted Contracts:</b></p>
<ix:nonNumeric name="us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock" contextRef="D240601_250531" escape="true" id="ixv-4998"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="top" style="width:220.85pt;border-bottom:0.75pt solid #000000"/><td valign="top" style="width:67.35pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:4.45pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:67.35pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Costs incurred on uncompleted contracts</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="fil:CostsIncurredOnUncompletedContracts" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7704">12,499,313</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><ix:nonFraction name="fil:CostsIncurredOnUncompletedContracts" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7705">10,576,401</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Estimated earnings</p>
</td><td valign="top" style="width:67.35pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="fil:CostsIncurredOnUncompletedContractsEstimatedEarnings" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7706">13,175,240</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><ix:nonFraction name="fil:CostsIncurredOnUncompletedContractsEstimatedEarnings" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7707">10,459,240</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"/><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="fil:CostsIncurredOnUncompletedContractsGross" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7708">25,674,553</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><ix:nonFraction name="fil:CostsIncurredOnUncompletedContractsGross" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7709">21,035,641</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Less billings to date</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="fil:CostsIncurredOnUncompletedContractsBillingsToDate" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7710">24,696,121</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><ix:nonFraction name="fil:CostsIncurredOnUncompletedContractsBillingsToDate" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7711">22,280,350</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"/><td valign="top" style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="fil:CostsIncurredOnUncompletedContractsNet" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7712">978,432</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">(<ix:nonFraction name="fil:CostsIncurredOnUncompletedContractsNet" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7713">1,244,709</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
</table>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Amounts are included in the accompanying balance sheets under the following captions:</p>
<ix:nonNumeric name="fil:ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5076"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="top" style="width:220.6pt"/><td valign="top" style="width:67.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:4.8pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center">&#160;</p>
</td><td valign="top" style="width:67.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:220.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Costs and estimated earnings in excess of billings</p>
</td><td valign="top" style="width:67.3pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><b><ix:nonFraction name="fil:CostsAndEstimatedEarningsInExcessOfBillings" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7714">5,360,499</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.8pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.3pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><ix:nonFraction name="fil:CostsAndEstimatedEarningsInExcessOfBillings" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7715">4,356,565</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Billings in excess of costs and estimated earnings </p>
</td><td valign="top" style="width:67.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><b><ix:nonFraction name="fil:BillingsInExcessOfCostsAndEstimatedEarnings" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7716">4,382,067</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.8pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><ix:nonFraction name="fil:BillingsInExcessOfCostsAndEstimatedEarnings" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7717">5,601,274</ix:nonFraction>&#160;</kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.6pt"/><td valign="top" style="width:67.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><b><ix:nonFraction name="fil:CostsIncurredOnUncompletedContractsNet" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7718">978,432</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.8pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">(<ix:nonFraction name="fil:CostsIncurredOnUncompletedContractsNet" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7719">1,244,709</ix:nonFraction>)</kbd>&#160;</p>
</td></tr>
</table>
</ix:nonNumeric></ix:nonNumeric><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-12</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><ix:continuation id="c8" continuedAt="c9"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The following summarizes the status of Projects in progress as of May 31, 2025 and 2024:</p>
<ix:nonNumeric name="fil:SchduleOfStatusOfProjectsInProgressTextBlock" contextRef="D240601_250531" escape="true" continuedAt="c10" id="ixv-5138"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</ix:nonNumeric></ix:continuation></div>
<div style="margin-left:54pt"><ix:continuation id="c9" continuedAt="c11"><ix:continuation id="c10" continuedAt="c12"><table style="border-collapse:collapse"><tr><td valign="top" style="width:252pt"/><td valign="top" style="width:93.6pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:93.6pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:252pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Number of Projects in progress</p>
</td><td valign="top" style="width:93.6pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b><ix:nonFraction name="fil:NumberOfProjectsInProgress" contextRef="I250531" decimals="INF" unitRef="Pure" scale="0" format="ixt:num-dot-decimal" id="ixv-7720">21</ix:nonFraction></b></p>
</td><td valign="top" style="width:93.6pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonFraction name="fil:NumberOfProjectsInProgress" contextRef="I240531" decimals="INF" unitRef="Pure" scale="0" format="ixt:num-dot-decimal" id="ixv-7721">19</ix:nonFraction></p>
</td></tr>
<tr><td valign="top" style="width:252pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Aggregate percent complete</p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b><ix:nonFraction name="fil:AggregatePercentComplete" contextRef="I250531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7722">65</ix:nonFraction>%</b></p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonFraction name="fil:AggregatePercentComplete" contextRef="I240531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7723">53</ix:nonFraction>%</p>
</td></tr>
<tr><td valign="top" style="width:252pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Aggregate amount remaining</p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>$<ix:nonFraction name="fil:AggregateAmountRemaining" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7724">13,100,204</ix:nonFraction></b></p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="fil:AggregateAmountRemaining" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7725">18,650,312</ix:nonFraction></p>
</td></tr>
<tr><td valign="top" style="width:252pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Percentage of total value invoiced to customer</p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b><ix:nonFraction name="fil:PercentageOfTotalValueInvoicedToCustomer" contextRef="I250531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7726">64</ix:nonFraction>%</b></p>
</td><td valign="top" style="width:93.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonFraction name="fil:PercentageOfTotalValueInvoicedToCustomer" contextRef="I240531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7727">56</ix:nonFraction>%</p>
</td></tr>
</table>
</ix:continuation></ix:continuation></div>
<div style="margin-left:54pt;width:522pt"><ix:continuation id="c11"><ix:continuation id="c12"></ix:continuation><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company expects to recognize the majority of remaining revenue on all open projects during the May 31, 2026 fiscal year. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Revenue recognized during the years ended May 31, 2025 and 2024 for amounts included in billings in excess of costs and estimated earnings as of the beginning of the year amounted to $<ix:nonFraction name="fil:RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7729">5,601,000</ix:nonFraction>, and $<ix:nonFraction name="fil:RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7730">1,992,000</ix:nonFraction>.</p>
</ix:continuation><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy" contextRef="D240601_250531" escape="true" id="ixv-5190"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>5. &#160;Maintenance and Other Inventory:</b></p>
<ix:nonNumeric name="fil:ScheduleOfMaintenanceAndOtherInventoryTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5193"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:356.4pt"><tr><td valign="top" style="width:218.45pt;border-bottom:0.5pt solid #000000"/><td valign="top" style="width:66.65pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:4.65pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center">&#160;</p>
</td><td valign="top" style="width:66.65pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:218.45pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Maintenance and other inventory</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ <ix:nonFraction name="fil:MaintenanceAndOtherInventoryGross" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7731">1,872,931</ix:nonFraction></b></p>
</td><td valign="top" style="width:4.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ <ix:nonFraction name="fil:MaintenanceAndOtherInventoryGross" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7732">2,416,748</ix:nonFraction></p>
</td></tr>
<tr><td valign="top" style="width:218.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Less allowance for obsolescence</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="fil:MaintenanceAndOtherInventoryAllowanceForObsolescence" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7733">765,056</ix:nonFraction></b></p>
</td><td valign="top" style="width:4.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="fil:MaintenanceAndOtherInventoryAllowanceForObsolescence" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7734">836,919</ix:nonFraction></p>
</td></tr>
<tr><td valign="top" style="width:218.45pt"/><td valign="top" style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ <ix:nonFraction name="fil:MaintenanceAndOtherInventoryNet" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7735">1,107,875</ix:nonFraction></b></p>
</td><td valign="top" style="width:4.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ <ix:nonFraction name="fil:MaintenanceAndOtherInventoryNet" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7736">1,579,829</ix:nonFraction></p>
</td></tr>
</table>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. &#160;This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering. &#160;This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. &#160;Therefore, management of the Company has recorded an allowance for potential inventory obsolescence. &#160;$<ix:nonFraction name="fil:InventoryDisposedOf" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7737">107,000</ix:nonFraction> and $<ix:nonFraction name="fil:InventoryDisposedOf" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7738">791,000</ix:nonFraction> of inventory was disposed of during the years ended May 31, 2025 and 2024. &#160;The provision for potential inventory obsolescence was <ix:nonFraction name="fil:ProvisionForPotentialInventoryObsolescence" contextRef="D240601_250531" decimals="INF" unitRef="USD" format="ixt:fixed-zero" id="ixv-7739">zero</ix:nonFraction> and $<ix:nonFraction name="fil:ProvisionForPotentialInventoryObsolescence" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7740">386,000</ix:nonFraction> for the years ended May 31, 2025 and 2024. &#160;The Company continues to rework slow-moving inventory, where applicable, to convert it to product to be used on customer orders. </p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5237"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>6. &#160;Property and Equipment:</b></p>
<ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5240"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="top" style="width:220.85pt;border-bottom:0.75pt solid #000000"/><td valign="top" style="width:67.35pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;margin-left:-13.9pt;margin-right:6.15pt;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:4.45pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:67.35pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Land</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I250531_PpeByType-Land" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7741">195,220</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I240531_PpeByType-Land" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7742">195,220</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Buildings and improvements</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I250531_PpeByType-BuildingImprovements" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7743">10,160,842</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I240531_PpeByType-BuildingImprovements" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7744">10,054,459</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Machinery and equipment</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I250531_PpeByType-MachineryAndEquipment" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7745">17,950,644</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I240531_PpeByType-MachineryAndEquipment" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7746">15,956,076</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Office furniture and equipment</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I250531_PpeByType-FurnitureAndFixtures" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7747">3,193,150</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I240531_PpeByType-FurnitureAndFixtures" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7748">3,113,921</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Autos and trucks</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I250531_PpeByType-Vehicles" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7749">91,717</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I240531_PpeByType-Vehicles" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7750">24,818</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Land improvements</p>
</td><td valign="top" style="width:67.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I250531_PpeByType-LandImprovements" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7751">662,168</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I240531_PpeByType-LandImprovements" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7752">662,168</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"/><td valign="top" style="width:67.35pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7753">32,253,741</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7754">30,006,662</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Less accumulated depreciation</p>
</td><td valign="top" style="width:67.35pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7755">20,179,569</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7756">18,825,729</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.85pt"/><td valign="top" style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7757">12,074,172</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7758">11,180,933</ix:nonFraction></kbd>&#160;</p>
</td></tr>
</table>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Depreciation expense was $<ix:nonFraction name="us-gaap:DepreciationDepletionAndAmortization" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7759">1,708,849</ix:nonFraction> and $<ix:nonFraction name="us-gaap:DepreciationDepletionAndAmortization" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7760">1,690,239</ix:nonFraction> for the years ended May 31, 2025 and 2024.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company has commitments to make capital expenditures of approximately $<ix:nonFraction name="us-gaap:OtherCommitment" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7761">1,853,000</ix:nonFraction> as of May 31, 2025.</p>
</ix:nonNumeric><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-13</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><ix:nonNumeric name="us-gaap:ShortTermDebtTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5374"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#000080"><b>7. &#160;Short-Term Borrowings:</b></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company has available a $<ix:nonFraction name="us-gaap:LineOfCredit" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7762">10,000,000</ix:nonFraction> bank demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day SOFR rate plus 2.365%. The line is secured by a negative pledge of the Company's real and personal property and is subject to renewal annually. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">There is <ix:nonFraction name="us-gaap:LineOfCreditFacilityAverageOutstandingAmount" contextRef="D230601_240531" decimals="INF" unitRef="USD" format="ixt:fixed-zero" id="ixv-7763">no</ix:nonFraction> amount outstanding under the line of credit at May 31, 2025 or 2024. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company uses a cash management facility under which the bank draws against the available line of credit to cover checks presented for payment on a daily basis. &#160;Outstanding checks under this arrangement totaled $<ix:nonFraction name="fil:OutstandingChecks" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7764">97,673</ix:nonFraction> and $<ix:nonFraction name="fil:OutstandingChecks" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7765">372,347</ix:nonFraction> as of May 31, 2025 and 2024. &#160;These amounts are included in accounts payable on the accompanying balance sheets.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5385"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>8. &#160;Accrued Expenses: </b></p>
<ix:nonNumeric name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5388"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="top" style="width:220.1pt;border-bottom:0.75pt solid #000000"/><td valign="top" style="width:68.05pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:4.7pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:220.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Customer deposits</p>
</td><td valign="top" style="width:68.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="I250531_FvByLiabClass-CustomerDeposits" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7766">104,825</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="I240531_FvByLiabClass-CustomerDeposits" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7767">285,689</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Personnel costs</p>
</td><td valign="top" style="width:68.05pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="I250531_FvByLiabClass-PersonnelCosts" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7768">3,214,157</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="I240531_FvByLiabClass-PersonnelCosts" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7769">3,763,777</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Other</p>
</td><td valign="top" style="width:68.05pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="I250531_FvByLiabClass-Other" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7770">753,454</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="I240531_FvByLiabClass-Other" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7771">614,997</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="top" style="width:220.1pt;border-bottom:0.5pt solid #000000"/><td valign="top" style="width:68.05pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7772">4,072,436</ix:nonFraction></b></kbd>&#160;</p>
</td><td valign="top" style="width:4.7pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7773">4,664,463</ix:nonFraction></kbd>&#160;</p>
</td></tr>
</table>
</ix:nonNumeric></ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:RevenueFromContractWithCustomerTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5454"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>9. &#160;Sales:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company manufactures and sells a single group of very similar products that have many different applications for customers. &#160;These similar products are included in one of nine categories; namely, Seismic Dampers, Fluidicshoks&#174;, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs, Custom Shock and Vibration Isolators, and Custom Actuators. &#160;Management does not track or otherwise account for sales broken down by these categories. &#160;Sales of the Company's products are made to three general groups of customers: industrial, structural and aerospace / defense. &#160;A breakdown of sales to these three general groups of customers is as follows: &#160;</p>
<ix:nonNumeric name="us-gaap:DisaggregationOfRevenueTableTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5459"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="top" style="width:216.1pt"/><td valign="top" style="width:65.95pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="color:#000080"><b>202</b><b>5</b></span></p>
</td><td valign="top" style="width:12pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:65.95pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:216.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Structural</p>
</td><td valign="top" style="width:65.95pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ <ix:nonFraction name="us-gaap:Revenues" contextRef="D240601_250531_StBusnSeg-Structural" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7774">14,827,044</ix:nonFraction></b></p>
</td><td valign="top" style="width:12pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:65.95pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ <ix:nonFraction name="us-gaap:Revenues" contextRef="D230601_240531_StBusnSeg-Structural" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7775">14,406,863</ix:nonFraction></p>
</td></tr>
<tr><td valign="top" style="width:216.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Aerospace / Defense</p>
</td><td valign="top" style="width:65.95pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:Revenues" contextRef="D240601_250531_StBusnSeg-AerospaceDefense" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7776">27,134,038</ix:nonFraction></b></p>
</td><td valign="top" style="width:12pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:65.95pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:Revenues" contextRef="D230601_240531_StBusnSeg-AerospaceDefense" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7777">26,675,321</ix:nonFraction></p>
</td></tr>
<tr><td valign="top" style="width:216.1pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Industrial</p>
</td><td valign="top" style="width:65.95pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:Revenues" contextRef="D240601_250531_StBusnSeg-Industrial" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7778">4,331,643</ix:nonFraction></b></p>
</td><td valign="top" style="width:12pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:65.95pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:Revenues" contextRef="D230601_240531_StBusnSeg-Industrial" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7779">3,500,623</ix:nonFraction></p>
</td></tr>
<tr><td valign="top" style="width:216.1pt"/><td valign="top" style="width:65.95pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ <ix:nonFraction name="us-gaap:Revenues" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7780">46,292,725</ix:nonFraction></b></p>
</td><td valign="top" style="width:12pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:65.95pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ <ix:nonFraction name="us-gaap:Revenues" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7781">44,582,807</ix:nonFraction></p>
</td></tr>
</table>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Sales to two customers approximated 36% (21% and 15% respectively) of net sales for 2025. Sales to a single customer approximated 21% of net sales for 2024.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:IncomeTaxDisclosureTextBlock" contextRef="D240601_250531" escape="true" continuedAt="c13" id="ixv-5515"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>10. &#160;Income Taxes:</b></p>
<ix:nonNumeric name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5518"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:391.55pt"><tr><td valign="bottom" style="width:216.5pt;border-bottom:0.75pt solid #000000"/><td colspan="2" valign="bottom" style="width:85pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="bottom" style="width:18.15pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:67.15pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td colspan="2" valign="bottom" style="width:4.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="bottom" style="width:216.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Current tax provision:</p>
</td><td colspan="2" valign="bottom" style="width:85pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td valign="bottom" style="width:18.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:67.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td colspan="2" valign="bottom" style="width:4.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td colspan="2" valign="bottom" style="width:234pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Federal </p>
</td><td valign="bottom" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b><ix:nonFraction name="us-gaap:CurrentFederalTaxExpenseBenefit" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7782">2,204,000</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:18.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:67.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:CurrentFederalTaxExpenseBenefit" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7783">2,365,000</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" valign="bottom" style="width:234pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">State</p>
</td><td valign="bottom" style="width:67.5pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b><ix:nonFraction name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7784">1,000</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:18.15pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:67.15pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7785">1,000</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" valign="bottom" style="width:234pt"/><td valign="bottom" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b><ix:nonFraction name="us-gaap:CurrentFederalStateAndLocalTaxExpenseBenefit" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7786">2,205,000</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:18.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:67.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:CurrentFederalStateAndLocalTaxExpenseBenefit" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7787">2,366,000</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" valign="bottom" style="width:234pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred tax provision (benefit):</p>
</td><td valign="bottom" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:18.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:67.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" valign="bottom" style="width:234pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Federal</p>
</td><td valign="bottom" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>(<ix:nonFraction name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7788">585,000</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:18.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:67.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(<ix:nonFraction name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7789">444,000</ix:nonFraction>)</kbd>&#160;</p>
</td><td valign="bottom" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" valign="bottom" style="width:234pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">State</p>
</td><td valign="bottom" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b><ix:nonFraction name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" contextRef="D240601_250531" decimals="128" unitRef="USD" format="ixt:fixed-zero" id="ixv-7790">-</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:18.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:67.15pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" contextRef="D230601_240531" decimals="128" unitRef="USD" format="ixt:fixed-zero" id="ixv-7791">-</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" valign="bottom" style="width:234pt"/><td valign="bottom" style="width:67.5pt;border-top:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>(<ix:nonFraction name="us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7792">585,000</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:18.15pt;border-top:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:67.15pt;border-top:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(<ix:nonFraction name="us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit" contextRef="D230601_240531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7793">444,000</ix:nonFraction>)</kbd>&#160;</p>
</td><td valign="bottom" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" valign="bottom" style="width:234pt"/><td valign="bottom" style="width:67.5pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7794">1,620,000</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="bottom" style="width:18.15pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:67.15pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7795">1,922,000</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="bottom" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
</table>
</ix:nonNumeric></ix:nonNumeric><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-14</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><ix:continuation id="c13"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:</p>
<ix:nonNumeric name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5664"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="top" style="width:218.35pt"/><td valign="top" style="width:66.65pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:4.65pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td valign="top" style="width:3.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:218.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Computed tax provision at the expected statutory rate</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7796">2,317,000</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7797">2,293,400</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:3.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:218.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Tax effect of permanent differences:</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:4.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:3.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:218.35pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Research tax credits</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>(<ix:nonFraction name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7798">489,692</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(<ix:nonFraction name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7799">407,675</ix:nonFraction>)</kbd>&#160;</p>
</td><td valign="top" style="width:3.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:218.35pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Foreign-derived intangible income deduction</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>(<ix:nonFraction name="us-gaap:IncomeTaxReconciliationTaxCreditsForeign" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7800">224,700</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(<ix:nonFraction name="us-gaap:IncomeTaxReconciliationTaxCreditsForeign" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7801">142,100</ix:nonFraction>)</kbd>&#160;</p>
</td><td valign="top" style="width:3.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:218.35pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Stock option costs</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>(<ix:nonFraction name="fil:StockOptionCosts" contextRef="D240601_250531" decimals="INF" unitRef="USD" sign="-" scale="0" format="ixt:num-dot-decimal" id="ixv-7802">11,682</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="fil:StockOptionCosts" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7803">48,500</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:3.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:218.35pt"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Other permanent differences</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:IncomeTaxReconciliationOtherReconcilingItems" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7804">24,300</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:IncomeTaxReconciliationOtherReconcilingItems" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7805">2,800</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:3.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:218.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Other</p>
</td><td valign="top" style="width:66.65pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="fil:OtherAdjustments" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7806">4,774</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.65pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="fil:OtherAdjustments" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7807">127,075</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:3.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:218.35pt"/><td valign="top" style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7808">1,620,000</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7809">1,922,000</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:3.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:218.35pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Effective income tax rate</p>
</td><td valign="top" style="width:66.65pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" contextRef="D240601_250531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7810">14.7</ix:nonFraction>%</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.65pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:66.65pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" contextRef="D230601_240531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7811">17.6</ix:nonFraction>%</kbd>&#160;</p>
</td><td valign="top" style="width:3.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Significant components of the Company's deferred tax assets and liabilities consist of the following:</p>
<ix:nonNumeric name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5808"><p style="font:11pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="top" style="width:216.6pt"/><td valign="top" style="width:67.25pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:4.45pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred tax assets:</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Allowance for estimated credit losses</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b><ix:nonFraction name="fil:AllowanceForDoubtfulReceivables" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7812">118,500</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="fil:AllowanceForDoubtfulReceivables" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7813">6,200</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Tax inventory adjustment</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b><ix:nonFraction name="fil:TaxInventoryAdjustment" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7814">52,600</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="fil:TaxInventoryAdjustment" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7815">57,300</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Allowance for obsolete inventory</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b><ix:nonFraction name="fil:AllowanceForObsoleteInventory" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7816">165,500</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="fil:AllowanceForObsoleteInventory" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7817">188,100</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Accrued vacation</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b><ix:nonFraction name="fil:AccruedVacation" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7818">169,600</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="fil:AccruedVacation" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7819">163,000</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Warranty reserve</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b><ix:nonFraction name="fil:WarrantyReserve" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7820">112,500</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="fil:WarrantyReserve" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7821">100,700</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">R&amp;D capitalization</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b><ix:nonFraction name="fil:RDCapitalization" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7822">2,111,200</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="fil:RDCapitalization" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7823">1,479,800</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Stock options issued for services</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b><ix:nonFraction name="fil:StockOptionsIssuedForServices" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7824">117,700</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="fil:StockOptionsIssuedForServices" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7825">181,200</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"/><td valign="top" style="width:67.25pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b><ix:nonFraction name="us-gaap:DeferredTaxAssetsGross" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7826">2,847,600</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:DeferredTaxAssetsGross" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7827">2,176,300</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred tax liabilities:</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Excess tax depreciation</p>
</td><td valign="top" style="width:67.25pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>(<ix:nonFraction name="fil:ExcessTaxDepreciation" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7828">1,249,600</ix:nonFraction>)</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">(<ix:nonFraction name="fil:ExcessTaxDepreciation" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7829">1,163,685</ix:nonFraction>)</kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:216.6pt"><p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000">Net deferred tax assets</p>
</td><td valign="top" style="width:67.25pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b><ix:nonFraction name="us-gaap:DeferredTaxAssetsNet" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7830">1,598,000</ix:nonFraction>&#160;</b></kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.25pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><ix:nonFraction name="us-gaap:DeferredTaxAssetsNet" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7831">1,012,615</ix:nonFraction>&#160;</kbd>&#160;</p>
</td><td valign="top" style="width:4.45pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. &#160;The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. &#160;A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. &#160;The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. &#160;The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. &#160;The Company will need to generate approximately $13.6 million in taxable income in future years in order to realize the deferred tax assets recorded as of May 31, 2025 of $2,847,600.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company and its subsidiary file consolidated Federal and State income tax returns. &#160;As of May 31, 2025, the Company had State investment tax credit carryforwards of approximately $493,000 expiring through May 2030.</p>
</ix:continuation><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-15</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><ix:nonNumeric name="us-gaap:EarningsPerShareTextBlock" contextRef="D240601_250531" escape="true" id="ixv-5999"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>11. &#160;Earnings Per Common Share: </b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Basic earnings per common share is computed by dividing income available to common stockholders by the weighted-average common shares outstanding for the period. &#160;Diluted earnings per common share reflects the weighted-average common shares outstanding and dilutive potential common shares, such as stock options.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">A reconciliation of weighted-average common shares outstanding to weighted-average common shares outstanding assuming dilution is as follows:</p>
<ix:nonNumeric name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" contextRef="D240601_250531" escape="true" id="ixv-6006"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:388.8pt"><tr><td valign="top" style="width:258.7pt"/><td valign="top" style="width:62.7pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:4.7pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:62.7pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:258.7pt"><p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000">Average common shares outstanding</p>
</td><td valign="top" style="width:62.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="fil:AverageCommonSharesOutstanding" contextRef="D240601_250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7832">3,131,134</ix:nonFraction></b></p>
</td><td valign="top" style="width:4.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:62.7pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="fil:AverageCommonSharesOutstanding" contextRef="D230601_240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7833">3,353,077</ix:nonFraction></p>
</td></tr>
<tr><td valign="top" style="width:258.7pt"><p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000">Common shares issuable under stock option plans</p>
</td><td valign="top" style="width:62.7pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="fil:CommonSharesIssuableUnderStockOptionPlans" contextRef="D240601_250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7834">147,555</ix:nonFraction></b></p>
</td><td valign="top" style="width:4.7pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="top" style="width:62.7pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="fil:CommonSharesIssuableUnderStockOptionPlans" contextRef="D230601_240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7835">135,711</ix:nonFraction></p>
</td></tr>
<tr><td valign="top" style="width:258.7pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000">Average common shares outstanding assuming dilution</p>
</td><td valign="top" style="width:62.7pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="fil:AverageCommonSharesOutstandingAssumingDilution" contextRef="D240601_250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7836">3,278,689</ix:nonFraction></b></p>
</td><td valign="top" style="width:4.7pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:62.7pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="fil:AverageCommonSharesOutstandingAssumingDilution" contextRef="D230601_240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7837">3,488,788</ix:nonFraction></p>
</td></tr>
</table>
</ix:nonNumeric></ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;</p>
<ix:nonNumeric name="us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock" contextRef="D240601_250531" escape="true" id="ixv-6049"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>12. &#160;Employee Stock Purchase Plan:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">In March 2004, the Company reserved 295,000 shares of common stock for issuance pursuant to a non-qualified employee stock purchase plan. &#160;Participation in the employee stock purchase plan is voluntary for all eligible employees of the Company. &#160;Purchase of common shares can be made by employee contributions through payroll deductions and without brokers&#8217; fees. &#160;At the end of each calendar quarter, the employee contributions will be applied to the purchase of common shares using a share value equal to the mean between the closing bid and ask prices of the stock on that date. &#160;These shares are distributed to the employees at the end of each calendar quarter or upon withdrawal from the plan. &#160;During the years ended May 31, 2025 and 2024, <ix:nonFraction name="fil:CommonSharesIssuedToEmployees" contextRef="D240601_250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7838">155</ix:nonFraction> ($32.51 to $49.40 price per share) and <ix:nonFraction name="fil:CommonSharesIssuedToEmployees" contextRef="D230601_240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7839">372</ix:nonFraction> ($21.70 to $48.89 price per share) common shares, respectively, were issued to employees. As of May 31, 2025, <ix:nonFraction name="fil:SharesReservedForFurtherIssue" contextRef="I250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7840">215,838</ix:nonFraction> shares were reserved for further issue. </p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" contextRef="D240601_250531" escape="true" continuedAt="c14" id="ixv-6055"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>13. &#160;Stock Option Plans:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">In 2022, the Company adopted a stock option plan which permits the Company to grant both incentive stock options and non-qualified stock options. &#160;The incentive stock options qualify for preferential treatment under the Internal Revenue Code. &#160;Under this plan, 260,000 shares of common stock have been reserved for grant to key employees and directors of the Company and 233,800 shares have been granted as of May 31, 2025. Under the plan, the option price may not be less than the fair market value of the stock at the time the options are granted. Options vest immediately and expire ten years from the date of grant.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Using the Black-Scholes option pricing model, the weighted average estimated fair value of each option granted under the plan was $13.61 during 2025 and $12.32 during 2024. &#160;The pricing model uses the assumptions noted in the following table. &#160;Expected volatility is based on the historical volatility of the Company's stock. &#160;The risk-free interest rate for periods within the contractual life of the option is based on the U.S. Treasury yield curve in effect at the time of the grant. &#160;The expected life of options granted is derived from previous history of stock exercises from the grant date and represents the period of time that options granted are expected to be outstanding. &#160;The Company uses historical data to estimate option exercise and employee termination assumptions under the valuation model. &#160;The Company has never paid dividends on its common stock and does not anticipate doing so in the foreseeable future.</p>
<ix:nonNumeric name="us-gaap:FairValueOptionTextBlock" contextRef="D240601_250531" escape="true" id="ixv-6062"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="top" style="width:217.5pt"/><td valign="top" style="width:67.5pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:7.5pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:67.5pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td valign="top" style="width:217.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Risk-free interest rate</p>
</td><td valign="top" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" contextRef="D240601_250531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7841">3.87</ix:nonFraction>%</b></p>
</td><td valign="top" style="width:7.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" contextRef="D230601_240531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7842">4.00</ix:nonFraction>%</p>
</td></tr>
<tr><td valign="top" style="width:217.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Expected life in years</p>
</td><td valign="top" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b><ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" contextRef="D240601_250531" format="ixt-sec:duryear" id="ixv-7843">4.2</ix:nonNumeric></b></p>
</td><td valign="top" style="width:7.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" contextRef="D230601_240531" format="ixt-sec:duryear" id="ixv-7844">4.3</ix:nonNumeric></p>
</td></tr>
<tr><td valign="top" style="width:217.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Expected volatility </p>
</td><td valign="top" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" contextRef="D240601_250531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7845">39</ix:nonFraction>%</b></p>
</td><td valign="top" style="width:7.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" contextRef="D230601_240531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7846">37</ix:nonFraction>%</p>
</td></tr>
<tr style="height:4pt"><td valign="top" style="width:217.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">Expected dividend yield</p>
</td><td valign="top" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" contextRef="D240601_250531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7847">0</ix:nonFraction>%</b></p>
</td><td valign="top" style="width:7.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" contextRef="D230601_240531" decimals="INF" unitRef="Pure" scale="-2" format="ixt:num-dot-decimal" id="ixv-7848">0</ix:nonFraction>%</p>
</td></tr>
</table>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</ix:nonNumeric><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-16</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><ix:continuation id="c14" continuedAt="c15"><p style="font:10pt Times New Roman;margin:0;color:#000000">The following is a summary of stock option activity:</p>
<ix:nonNumeric name="us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock" contextRef="D240601_250531" escape="true" id="ixv-6123"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="bottom" style="width:171.2pt"/><td valign="bottom" style="width:62.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Shares</b></p>
</td><td valign="bottom" style="width:1.9pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td valign="bottom" style="width:62.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Weighted Average Exercise Price</b></p>
</td><td valign="bottom" style="width:62.3pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Intrinsic Value</b></p>
</td></tr>
<tr><td valign="bottom" style="width:171.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Outstanding - May 31, 2023</p>
</td><td valign="bottom" style="width:62.3pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="I230531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7849">333,000</ix:nonFraction></b></p>
</td><td valign="bottom" style="width:1.9pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:62.3pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="I230531" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7850">12.70</ix:nonFraction></kbd>&#160;</p>
</td><td valign="bottom" style="width:62.3pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" contextRef="I230531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7851">2,016,961</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="bottom" style="width:171.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Options granted</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" contextRef="D230601_240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7852">85,000</ix:nonFraction></b></p>
</td><td valign="bottom" style="width:1.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" contextRef="D230601_240531" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7853">34.04</ix:nonFraction></kbd>&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="bottom" style="width:171.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options exercised</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" contextRef="D230601_240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7854">76,750</ix:nonFraction></b></p>
</td><td valign="bottom" style="width:1.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" contextRef="D230601_240531" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7855">12.54</ix:nonFraction></kbd>&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="bottom" style="width:171.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options expired</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" contextRef="D230601_240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7856">750</ix:nonFraction></b></p>
</td><td valign="bottom" style="width:1.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" contextRef="D230601_240531" decimals="128" unitRef="UsdPerShare" format="ixt:fixed-zero" id="ixv-7857">-</ix:nonFraction></kbd>&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="bottom" style="width:171.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Outstanding - May 31, 2024</p>
</td><td valign="bottom" style="width:62.3pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="I240531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7858">340,500</ix:nonFraction></b></p>
</td><td valign="bottom" style="width:1.9pt;border-top:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="I240531" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7859">18.07</ix:nonFraction></kbd>&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" contextRef="I240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7860">11,185,815</ix:nonFraction></kbd>&#160;</p>
</td></tr>
<tr><td valign="bottom" style="width:171.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Options granted</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" contextRef="D240601_250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7861">89,800</ix:nonFraction></b></p>
</td><td valign="bottom" style="width:1.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" contextRef="D240601_250531" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7862">37.24</ix:nonFraction></kbd>&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="bottom" style="width:171.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options exercised</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" contextRef="D240601_250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7863">31,000</ix:nonFraction></b></p>
</td><td valign="bottom" style="width:1.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" contextRef="D240601_250531" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7864">11.51</ix:nonFraction></kbd>&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td valign="bottom" style="width:171.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options expired</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" contextRef="D240601_250531" decimals="128" unitRef="Shares" format="ixt:fixed-zero" id="ixv-7865">-</ix:nonFraction></b></p>
</td><td valign="bottom" style="width:1.9pt"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" contextRef="D240601_250531" decimals="128" unitRef="UsdPerShare" format="ixt:fixed-zero" id="ixv-7866">-</ix:nonFraction></kbd>&#160;</p>
</td><td valign="bottom" style="width:62.3pt"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.55pt"><td valign="bottom" style="width:171.2pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Outstanding - May 31, 2025</p>
</td><td valign="bottom" style="width:62.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="I250531" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7867">399,300</ix:nonFraction></b></p>
</td><td valign="bottom" style="width:1.9pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="bottom" style="width:62.3pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="I250531" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7868">22.89</ix:nonFraction></kbd>&#160;</p>
</td><td valign="bottom" style="width:62.3pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" contextRef="I250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7869">6,341,305</ix:nonFraction></kbd>&#160;</p>
</td></tr>
</table>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">We calculated intrinsic value for those options that had an exercise price lower than the market price of our common shares as of the balance sheet dates. &#160;The aggregate intrinsic value of outstanding options as of the end of each fiscal year is calculated as the difference between the exercise price of the underlying options and the market price of our common shares for the options that were in-the-money at that date (309,500 at May 31, 2025 and 340,500 at May 31, 2024). &#160;The Company's closing stock price was $36.93 and $50.92 as of May 31, 2025 and 2024. &#160;As of May 31, 2025, there are 26,200 options available for future grants under the 2022 stock option plan. &#160;$356,883 was received from the exercise of options during the fiscal year ended May 31, 2025; $957,205 was received from the exercise of options during the fiscal year ended May 31, 2024.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The following table summarizes information about stock options outstanding at May 31, 2025:</p>
<ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" contextRef="D240601_250531" escape="true" continuedAt="c16" id="ixv-6273"><p style="font:6pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:367.2pt"><tr><td colspan="4" valign="bottom" style="width:360pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>Outstanding and Exercisable</b></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt;border-top:0.75pt solid #000000"><p style="font:9pt Times New Roman;margin:0;margin-right:-9pt;color:#000000;text-align:center">Range of Exercise Prices</p>
</td><td valign="bottom" style="width:50.4pt;border-top:0.75pt solid #000000"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Number of Options</p>
</td><td valign="bottom" style="width:100.8pt;border-top:0.75pt solid #000000"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Remaining Years of Contractual Life</p>
</td><td colspan="2" valign="bottom" style="width:72pt;border-top:0.75pt solid #000000"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Exercise Price</p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$10.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7870">45,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001" format="ixt-sec:duryear" id="ixv-7871">5.8</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7872">9.71</ix:nonFraction></p>
</td></tr>
<tr style="height:12.15pt"><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$10.01-$11.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7873">15,250</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001" format="ixt-sec:duryear" id="ixv-7874">3.7</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7875">10.21</ix:nonFraction></p>
</td></tr>
<tr style="height:12.15pt"><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$11.01-$12.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7876">99,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001" format="ixt-sec:duryear" id="ixv-7877">5.4</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7878">11.72</ix:nonFraction></p>
</td></tr>
<tr style="height:12.15pt"><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$12.01-$13.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7879">6,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001" format="ixt-sec:duryear" id="ixv-7880">1.7</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7881">12.41</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$13.01-$14.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7882">10,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001" format="ixt-sec:duryear" id="ixv-7883">1.9</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7884">13.80</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$16.01-$17.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7885">10,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001" format="ixt-sec:duryear" id="ixv-7886">0.9</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7887">16.40</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$19.01-$20.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7888">47,500</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001" format="ixt-sec:duryear" id="ixv-7889">7.3</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7890">19.89</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$20.01-$21.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7891">33,750</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100" format="ixt-sec:duryear" id="ixv-7892">8.4</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7893">20.78</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$30.01-$31.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N30013100" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7894">43,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N30013100" format="ixt-sec:duryear" id="ixv-7895">9.9</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N30013100" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7896">30.55</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$43.01-$44.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N43014400" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7897">46,800</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N43014400" format="ixt-sec:duryear" id="ixv-7898">9.4</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N43014400" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7899">43.38</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$46.01-$47.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7900">43,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700" format="ixt-sec:duryear" id="ixv-7901">8.9</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7902">46.99</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$47.00</p>
</td><td valign="bottom" style="width:50.4pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7903">399,300</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700" format="ixt-sec:duryear" id="ixv-7904">6.9</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7905">22.89</ix:nonFraction></p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</ix:nonNumeric></ix:continuation><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-17</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><ix:continuation id="c15"><ix:continuation id="c16"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The following table summarizes information about stock options outstanding at May 31, 2024:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:367.2pt"><tr><td colspan="4" valign="bottom" style="width:360pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>Outstanding and Exercisable</b></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt;border-top:0.75pt solid #000000"><p style="font:9pt Times New Roman;margin:0;margin-right:-9pt;color:#000000;text-align:center">Range of Exercise Prices</p>
</td><td valign="bottom" style="width:50.4pt;border-top:0.75pt solid #000000"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Number of Options</p>
</td><td valign="bottom" style="width:100.8pt;border-top:0.75pt solid #000000"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Remaining Years of Contractual Life</p>
</td><td colspan="2" valign="bottom" style="width:72pt;border-top:0.75pt solid #000000"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Exercise Price</p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$10.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7906">55,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001" format="ixt-sec:duryear" id="ixv-7907">7.0</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7908">9.67</ix:nonFraction></p>
</td></tr>
<tr style="height:12.15pt"><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$10.01-$11.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7909">15,250</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001" format="ixt-sec:duryear" id="ixv-7910">4.7</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7911">10.21</ix:nonFraction></p>
</td></tr>
<tr style="height:12.15pt"><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$11.01-$12.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7912">106,250</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001" format="ixt-sec:duryear" id="ixv-7913">6.5</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7914">11.72</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$12.01-$13.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7915">19,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001" format="ixt-sec:duryear" id="ixv-7916">1.5</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7917">12.36</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$13.01-$14.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7918">10,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001" format="ixt-sec:duryear" id="ixv-7919">2.9</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7920">13.80</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$16.01-$17.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7921">10,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001" format="ixt-sec:duryear" id="ixv-7922">1.9</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7923">16.40</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$19.01-$20.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7924">47,500</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001" format="ixt-sec:duryear" id="ixv-7925">8.3</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7926">19.89</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$20.01-$21.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7927">34,500</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100" format="ixt-sec:duryear" id="ixv-7928">9.4</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7929">20.78</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$46.01-$47.00</p>
</td><td valign="bottom" style="width:50.4pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7930">43,000</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700" format="ixt-sec:duryear" id="ixv-7931">9.9</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7932">46.99</ix:nonFraction></p>
</td></tr>
<tr><td valign="bottom" style="width:144pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$47.00</p>
</td><td valign="bottom" style="width:50.4pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"><ix:nonFraction name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700" decimals="INF" unitRef="Shares" scale="0" format="ixt:num-dot-decimal" id="ixv-7933">340,500</ix:nonFraction></p>
</td><td valign="bottom" style="width:100.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonNumeric name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700" format="ixt-sec:duryear" id="ixv-7934">6.9</ix:nonNumeric></p>
</td><td colspan="2" valign="bottom" style="width:72pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700" decimals="INF" unitRef="UsdPerShare" scale="0" format="ixt:num-dot-decimal" id="ixv-7935">18.07</ix:nonFraction></p>
</td></tr>
</table>
</ix:continuation></ix:continuation><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock" contextRef="D240601_250531" escape="true" id="ixv-6514"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#000080"><b>1</b><b>4</b><b>. &#160;Retirement Plan:</b></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company maintains a retirement plan for essentially all employees pursuant to Section 401(k) of the Internal Revenue Code. &#160;The Company matches a percentage of employee voluntary salary deferrals subject to limitations. &#160;The Company may also make discretionary contributions as determined annually by the Company's Board of Directors. &#160;The amount expensed under the plan was $<ix:nonFraction name="us-gaap:PensionAndOtherPostretirementBenefitExpense" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7936">462,445</ix:nonFraction> and $<ix:nonFraction name="us-gaap:PensionAndOtherPostretirementBenefitExpense" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7937">431,720</ix:nonFraction> for the years ended May 31, 2025 and 2024.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:FairValueDisclosuresTextBlock" contextRef="D240601_250531" escape="true" id="ixv-6523"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>15. &#160;Fair Value of Financial Instruments:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable, and accrued liabilities approximate fair value because of the short maturity of these instruments.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The fair values of short-term investments were determined as described in Note 1.</p>
</ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:CashFlowSupplementalDisclosuresTextBlock" contextRef="D240601_250531" escape="true" id="ixv-6531"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>16. &#160;Cash Flows Information:</b></p>
<ix:nonNumeric name="us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" contextRef="D240601_250531" escape="true" id="ixv-6534"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td valign="top" style="width:217.5pt;border-bottom:0.75pt solid #000000"/><td valign="top" style="width:67.5pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td valign="top" style="width:3.75pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td valign="top" style="width:67.5pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td valign="top" style="width:3.75pt;border-bottom:0.75pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:217.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td valign="top" style="width:3.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:67.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:3.75pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr><td valign="top" style="width:217.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;Interest paid</p>
</td><td valign="top" style="width:67.5pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b><ix:nonFraction name="us-gaap:InterestPaid" contextRef="D240601_250531" decimals="INF" unitRef="USD" format="ixt-sec:numwordsen" id="ixv-7938">None</ix:nonFraction></b></p>
</td><td valign="top" style="width:3.75pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:67.5pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><ix:nonFraction name="us-gaap:InterestPaid" contextRef="D230601_240531" decimals="INF" unitRef="USD" format="ixt-sec:numwordsen" id="ixv-7939">None</ix:nonFraction></p>
</td><td valign="top" style="width:3.75pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:12.3pt"><td valign="top" style="width:217.5pt"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td valign="top" style="width:67.5pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td valign="top" style="width:3.75pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:67.5pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td valign="top" style="width:3.75pt;border-top:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:12.3pt"><td valign="top" style="width:217.5pt;border-bottom:0.5pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;Income taxes paid</p>
</td><td valign="top" style="width:67.5pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>$<ix:nonFraction name="us-gaap:IncomeTaxesPaidNet" contextRef="D240601_250531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7940">2,425,000</ix:nonFraction></b></p>
</td><td valign="top" style="width:3.75pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td valign="top" style="width:67.5pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$<ix:nonFraction name="us-gaap:IncomeTaxesPaidNet" contextRef="D230601_240531" decimals="INF" unitRef="USD" scale="0" format="ixt:num-dot-decimal" id="ixv-7941">2,010,000</ix:nonFraction></p>
</td><td valign="top" style="width:3.75pt;border-bottom:2.25pt solid #000000"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
</ix:nonNumeric></ix:nonNumeric><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<ix:nonNumeric name="us-gaap:LegalMattersAndContingenciesTextBlock" contextRef="D240601_250531" escape="true" continuedAt="c17" id="ixv-6595"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>17. &#160;Legal Proceedings: </b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><ix:nonNumeric name="us-gaap:LossContingencyPartiesJointlyAndSeverallyLiableInLitigation" contextRef="D240601_250531" escape="true" id="ixv-7942">The Company has been named as a third-party defendant </ix:nonNumeric>in an action captioned <ix:nonNumeric name="us-gaap:LossContingencyNameOfPlaintiff" contextRef="D240601_250531" escape="true" id="ixv-7943">Board of Managers of the 432 Park Condominium, et al.</ix:nonNumeric> v. 56<span style="vertical-align:super">th</span> and Park (NY) Owner LLC, et al. (the &#8220;Action&#8221;). </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Action was filed on or about <ix:nonNumeric name="us-gaap:LossContingencyLawsuitFilingDate1" contextRef="D240601_250531" format="ixt:date-monthname-day-year-en" id="ixv-7944">September 23, 2021</ix:nonNumeric>. In the Action, the Board of Managers of 432 Park Condominium (the &#8220;Owner&#8221;), a condominium association for a high-rise condominium building (the &#8220;Building&#8221;) located at 432 Park Avenue in New York, N.Y., asserts a claim against the condominium sponsor, 56<span style="vertical-align:super">th</span> and Park (NY) Owner LLC (the &#8220;Sponsor&#8221;) for damages arising from <ix:nonNumeric name="us-gaap:LossContingencyAllegations" contextRef="D240601_250531" escape="true" id="ixv-7945">construction and design defects to the residential and commercial units at the Building</ix:nonNumeric>. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Sponsor subsequently filed a third-party complaint against LendLease Construction (US) LMB (&#8220;LendLease&#8221;) and other parties involved in the Building&#8217;s design. As to LendLease, the third-party complaint alleges breach of a construction management contract between LendLease and the Sponsor and negligence arising from purported failure to perform under the contract, and seeks indemnification against any damages asserted against the Sponsor by the Owner.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">LendLease subsequently initiated a third-party complaint seeking indemnification from entities with whom LendLease had contracted for the supply of materials and services in connection with construction of the Building. The third-party complaint also </p>
</ix:nonNumeric><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-18</span></p>
<hr style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"/><p style="line-height:0;margin:0"></p>
<hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><ix:continuation id="c17"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="font-size:10pt">names the Company as a third-party defendant based upon a contract between the Company and LendLease to supply 16 Viscous Damping Devices that were incorporated into a Tuned Mass Damper system designed by a third party to limit accelerations of the Building during wind events. The Company has timely filed and served an answer denying the allegations in LendLease&#8217;s third party complaint.</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Action, and all of the related third-party actions, are pending in the Commercial Division of the Supreme Court, New York County. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Discovery relating to the Action remains ongoing and is expected to conclude on or about December 24, 2025, and the deadline to file dispositive motions has been extended to March 11, 2026.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><ix:nonNumeric name="fil:LossContingencyInestimableLoss2" contextRef="D240601_250531" escape="true" id="ixv-7946">At present, the Company is unable to determine the likelihood of an unfavorable outcome or to quantify a potential loss</ix:nonNumeric>.</p>
</ix:continuation><hr style="border:0;height:0;width:0;margin:14pt 0 0 0"/><p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="font-size:10pt">F-19</span></p>
<p style="font:12pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</div>
</body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.14
<SEQUENCE>2
<FILENAME>td_ex10z14.htm
<DESCRIPTION>EXECUTIVE RETIREMENT AND TRANSITION AGREEMENT
<TEXT>
<HTML>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA34KPNR]. www.edgarsuite.com -->
<HEAD>
<TITLE>Executive Retirement And Transition Agreement</TITLE>
</HEAD>
<BODY>
<DIV style=margin-left:72pt;width:451pt><HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><B>EXECUTIVE RETIREMENT AND TRANSITION AGREEMENT</B></P>
<P style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt;text-indent:36pt'>This Executive Retirement and Transition Agreement (the &#8220;<FONT style='border-bottom:1px solid #000000'>Retirement Agreement</FONT>&#8221;) is made and entered into as of January 14, 2025, by and between Alan R. Klembczyk (&#8220;<FONT style='border-bottom:1px solid #000000'>Executive</FONT>&#8221;) and Taylor Devices, Inc. (the &#8220;<FONT style='border-bottom:1px solid #000000'>Company</FONT>&#8221;), hereinafter collectively referred to as the &#8220;<FONT style='border-bottom:1px solid #000000'>Parties</FONT>.&#8221;</P>
<P align=center style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><FONT style='border-bottom:1px solid #000000'><B>RECITALS</B></FONT></P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>A.</KBD><KBD style=margin-left:36pt></KBD><B>WHEREAS</B>, the Executive has provided the Company with notice of his intention to retire as President of the Company; and&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>B.</KBD><KBD style=margin-left:36pt></KBD><B>WHEREAS</B>, the Company wishes to assure itself of the Executive&#8217;s continuing employment with the Company to facilitate the orderly transition of the Executive&#8217;s duties.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt;text-indent:36pt'><B>NOW, THEREFORE</B>, in consideration of the Recitals and the mutual promises and agreements set forth herein, the receipt and sufficiency of which are hereby acknowledged, the Parties agree as follows:</P>
<P align=center style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'>1.  <FONT style='border-bottom:1px solid #000000'><B>RETIREMENT AND TRANSITION</B></FONT></P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>1.1.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Retirement</FONT>.  Executive acknowledges and agrees that Executive will retire from his position as President of the Company effective June 1, 2025 (the &#8220;<FONT style='border-bottom:1px solid #000000'>Retirement Date</FONT>&#8221;).&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>1.2.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Interim Period</FONT>.  During the period between the date of this Retirement Agreement and the Retirement Date (the &#8220;<FONT style='border-bottom:1px solid #000000'>Interim Period</FONT>&#8221;), Executive will continue in his position as the Company&#8217;s President, and will continue to perform the functions of that office in accordance with the terms of Executive&#8217;s employment agreement with the Company dated June 1, 2018 (the &#8220;Employment Agreement&#8221;). &nbsp;In addition, during the Interim Period, Executive will cooperate with and provide assistance to the Company in the orderly transition of his duties to any persons identified by the Company.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><A name=_Hlk184369524 /><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>1.3.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Transition</FONT>.  From and after the Retirement Date and continuing until November 30, 2025 (the &#8220;<FONT style='border-bottom:1px solid #000000'>Transition Period</FONT>&#8221;), Executive will continue his employment with the Company in order to provide transition and support services to the Company as may be reasonably requested by the Company from time to time, which services are expected to require on average 10 hours per week of Executive&#8217;s time. &nbsp;</P>
<P align=center style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'>2.  <FONT style='border-bottom:1px solid #000000'><B>COMPENSATION</B></FONT></P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>2.1.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Base Salary; Employee Benefits</FONT>. &nbsp;During the Interim Period and thereafter through the expiration of the Transition Period, Executive (i) will continue to receive his annualized base salary that is in effect on the date of this Agreement and (ii) will remain eligible to participate in the Company&#8217;s employee benefit programs subject to and in accordance with the terms and conditions of those employee benefit programs. &nbsp;&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>2.2.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>2025 Annual Bonus</FONT>. If Executive remains employed in good standing with the Company through the end of the Interim Period, or if prior to the end of the Interim Period, Executive&#8217;s employment is terminated by the Company without Cause (as such term is defined in the Employment Agreement), Executive will be eligible for an annual bonus with respect to the Company&#8217;s 2025 fiscal year. &nbsp;Any annual bonus earned by Executive for the Company&#8217;s 2025 fiscal year will be paid to Executive at the same time annual bonuses for the &nbsp;</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'>Company&#8217;s 2025 fiscal year are paid to the executive officers of the Company, which is expected to be in no event later than August 31, 2025.</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>2.3.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>2025 Stock Option Award</FONT>. During the Interim Period, Executive shall be eligible to receive a stock option award with respect to the Company&#8217;s 2025 fiscal year pursuant to the 2022 stock option plan of the Company.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>2.4.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Stock Options</FONT>. If Executive remains employed in good standing with the Company through the end of the Transition Period, all unexercised stock options then held by Executive will, to the extent vested and outstanding as of the end of Transition Period, remain exercisable until the earlier of (i) the latest date upon which the applicable stock option could have expired by its original terms under any circumstances, or (ii) the tenth anniversary of the original date of grant of the applicable stock option. Executive acknowledges and understands that to the extent any stock options referenced in this Section 2.4 were designated as incentive stock options at the time such stock options were granted, all of those stock options shall cease to qualify as incentive stock options as a result of the extension of the exercise period for those stock options in accordance with this Section 2.4.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>2.5.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Death Benefit</FONT>. &nbsp;Notwithstanding anything to the contrary in this Retirement Agreement, Executive&#8217;s rights to a death benefit under Section 4.3 of the Employment Agreement will continue through the end of the Transition Period.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>2.6.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>COBRA</FONT>.  To the extent provided by the Consolidated Omnibus Budget Reconciliation Act of 1985 (&#8220;<FONT style='border-bottom:1px solid #000000'>COBRA</FONT>&#8221;) and by the Company&#8217;s current group health plan, Executive may be eligible to continue group health insurance benefits at his own expense after the expiration of the Interim Period.  The Company will provide Executive with separate written notice of his rights and obligations under COBRA.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>2.7.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Conditions</FONT>. Executive&#8217;s entitlement to the payments and benefits described in this Retirement Agreement, including under Section 2.4 hereof, is expressly conditioned upon (a) Executive&#8217;s compliance at all times with the terms and conditions of this Retirement Agreement and the terms and conditions of any non-competition, confidentiality or other restrictive covenants to which Executive is subject under any agreement with, or plan of, the Company, and (b) Executive signing and not revoking a Separation and Release Agreement in the form set forth on <FONT style='border-bottom:1px solid #000000'>Exhibit A</FONT> hereto, provided that the Separation and Release Agreement is signed by Executive upon or after the end of the Transition Period, but before any deadline specified by the Company. &nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>2.8.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Clawback</FONT>. Executive acknowledges and agrees that compensation payable under this Agreement may be subject to clawback or recoupment in accordance with the terms and conditions of the Company&#8217;s Recovery of Erroneously Awarded Compensation Policy or any other clawback or recoupment policy maintained by the Company.&nbsp;</P>
<P align=center style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'>3.  <FONT style='border-bottom:1px solid #000000'><B>COVENANTS</B></FONT></P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>3.1.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Service on Board of Directors</FONT>. Executive acknowledges and agrees that he has advised the Company that he will neither seek nor stand for reelection to the Company&#8217;s board of directors at the Company&#8217;s 2025 annual meeting of shareholders and that he understands that his service on the Company&#8217;s board of directors will cease upon the expiration of his current term.&nbsp;</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>2</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>3.2.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Employment Agreement</FONT>. &nbsp;Executive acknowledges and agrees that this Retirement Agreement amends and supersedes Section 2.1 (Term) of the Employment Agreement, and further acknowledges and agrees that all of the rights and obligations of the parties under the Employment Agreement shall terminate upon the end of the Interim Period on June 1, 2025, except (i) as set forth in Section 2.5 hereof, and (ii) for any covenants therein that by their terms survive the termination of the Employment Agreement, which covenants shall continue in full force and effect and binding upon Executive or the Company in accordance with their terms (including, without limitation, the covenants and agreements made by Executive in Article 6 thereof and by the Company in Section 6.16 thereof).&nbsp;</P>
<P align=center style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'>4.  <FONT style='border-bottom:1px solid #000000'><B>GENERAL PROVISIONS</B></FONT></P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>4.1.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Effect on Other Agreements</FONT>. &nbsp;In the case of a conflict between the provisions of this Retirement Agreement and the provisions of the Employment Agreement, the provisions of this Retirement Agreement will govern.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>4.2.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Entire Agreement; Amendment</FONT>.  This Retirement Agreement constitutes the entire agreement between the Parties with regard to the subject matter hereof, superseding all prior understandings and agreements, whether written or oral. &nbsp;This Retirement Agreement may not be amended or revised except by a writing signed by the Parties.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>4.3.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Cooperation</FONT>. Executive agrees that certain matters in which he has been involved with during his employment with the Company may require his cooperation with the Company in the future. Accordingly, after the expiration of the Transition Period, to the extent reasonably requested by the Company, Executive agrees to cooperate with the Company regarding matters arising out of or related to Executive&#8217;s prior service to the Company. &nbsp;The Company shall reimburse Executive for reasonable out-of-pocket expenses incurred by Executive in connection with this cooperation, subject to the Company&#8217;s consent prior to the time the expenses are incurred, which consent will not be unreasonably withheld.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>4.4.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Counterparts</FONT>.  This Agreement may be executed in one or more counterparts, each of which shall be deemed an original and shall have the same effect as if the signatures hereto and thereto were on the same instrument.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>4.5.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Section 409A Compliance</FONT>.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>(a)</KBD><KBD style=margin-left:108pt></KBD>It is intended that any payments and benefits under this Retirement Agreement be exempt from or comply with Section 409A of the Internal Revenue Code of 1986, as amended (the &#8220;<FONT style='border-bottom:1px solid #000000'>Code</FONT>&#8221;), and this Agreement will be interpreted and administered in accordance with this intent. Accordingly, all terms of this Retirement Agreement that are undefined or ambiguous will be interpreted in a manner that is consistent with Code Section 409A if necessary to comply with Code Section 409A.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>(b)</KBD><KBD style=margin-left:108pt></KBD>If the Company determines that Executive is a &#8220;specified employee&#8221; (within the meaning of Code Section 409A) and that any amount payable under this Agreement (i) is subject to Code Section 409A and (ii) is payable solely because Executive has incurred a &#8220;separation from service&#8221; (within the meaning of Code Section 409A), then the amount will not be paid (or begin to be paid) prior to the date that is six months after the date of Executive&#8217;s separation from service (or, if earlier, the date of Executive&#8217;s death).&nbsp;</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>3</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>(c)</KBD><KBD style=margin-left:108pt></KBD>Notwithstanding any other provision of this Agreement, the Company does not make any representations that any payments or benefits provided for by this Retirement Agreement are exempt from or compliant with Code Section 409A, and the Company will not be liable to Executive or any other person for any adverse tax consequences under Code Section 409A or any other provision of the Code. &nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'>4.6.</KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'>Protected Rights</FONT>. &nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>(a)</KBD><KBD style=margin-left:108pt></KBD>Nothing in this Retirement Agreement or any other agreement between Executive and the Company or its affiliates limits Executive&#8217;s right, protected under law, to file a charge or communicate with or otherwise participate in any investigation or proceeding conducted by the Securities and Exchange Commission, the Financial Industry Regulatory Authority, the Occupational Safety and Health Administration, the Equal Employment Opportunity Commission, the National Labor Relations Board, or any other governmental agency charged with enforcement of any law, or complying with the lawful process of any governmental body to the extent Executive has a protected right to do so.&nbsp;</P>
<P style='font:12pt Times New Roman;margin-top:12pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>(b)</KBD><KBD style=margin-left:108pt></KBD>Additionally, notwithstanding any other provision of this Retirement Agreement or any other agreement between Executive and the Company or its affiliates, Executive will not be held criminally or civilly liable under any federal or state trade secret law for any disclosure of a trade secret that: (i) is made (1) in confidence to a federal, state, or local government official, either directly or indirectly, or to an attorney; and (2) solely for the purpose of reporting or investigating a suspected violation of law; or (ii) is made in a complaint or other document filed under seal in a lawsuit or other proceeding. &nbsp;If Executive files a lawsuit for retaliation by the Company for reporting a suspected violation of law, Executive may disclose the Company&#8217;s trade secrets to his attorney and use the trade secret information in the court proceeding if Executive: (x) files any document containing trade secrets under seal; and (y) does not disclose trade secrets, except pursuant to court order.&nbsp;</P>
<P align=center style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'>[The remainder of this page is left intentionally blank.]</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>4</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:36pt;text-indent:36pt'>IN WITNESS WHEREOF, the parties have executed this Executive Retirement and Transition Agreement as of the date first set forth above.</P>
<P style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:24pt;margin-left:216pt'><B>TAYLOR DEVICES, INC.</B></P>
<P style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:18pt;margin-left:216pt'>Name: /s/Timothy J. Sopko</P>
<P style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:36pt;margin-left:216pt'>Title: Chief Executive Officer</P>
<P style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:24pt;margin-left:216pt'><B>EXECUTIVE </B></P>
<P style='font:12pt Times New Roman;margin:0;margin-left:216pt'>/s/Alan R. Klembczyk</P>
<P style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:216pt'>Alan R. Klembczyk </P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>5</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><B>EXHIBIT A</B></P>
<P align=center style='font:12pt Times New Roman;margin:0'><B>SEPARATION AND RELEASE AGREEMENT</B></P>
<P align=center style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>This Separation and Release Agreement (&#8220;<FONT style='border-bottom:1px solid #000000'>Agreement</FONT>&#8221;) is entered into between Alan R. Klembczyk (&#8220;<FONT style='border-bottom:1px solid #000000'>you</FONT>&#8221;) and Taylor Devices, Inc. (the &#8220;<FONT style='border-bottom:1px solid #000000'>Company</FONT>&#8221;). You and the Company may be referred to in this Agreement individually as a Party and collectively as the Parties. In consideration of the mutual promises, benefits, and covenants contained herein, you and the Company hereby agree as follows:<B> </B></P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'><B>1.</B></KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>Employment Separation</FONT>.<FONT style=color:#1F497D> </FONT>You acknowledge that your employment with the Company and any other Releasee ended effective as of November 30, 2025 (the &#8220;<FONT style='border-bottom:1px solid #000000'>Separation Date</FONT>&#8221;). After the Separation Date, you will not represent to others that you are an employee, officer, agent, or representative of the Company or any other Releasee (as defined below) for any purpose. &nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:72pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'>2.</KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>Transition Benefits</FONT>. If you sign, do not revoke, and comply with this Agreement and the Executive Retirement and Transition Agreement, dated January 14, 2025 (the &#8220;<FONT style='border-bottom:1px solid #000000'>Retirement Agreement</FONT>&#8221;), you will be entitled to the payments and benefits set forth in Section 2.4 of the Retirement Agreement (the &#8220;<FONT style='border-bottom:1px solid #000000'>Transition Benefits</FONT>&#8221;).&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'><B>3.</B></KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>General Release</FONT>. &nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'><B>a.</B></KBD><KBD style=margin-left:108pt></KBD>In consideration of the Transition Benefits, together with other good and valuable consideration, the sufficiency of which you hereby acknowledge, you on behalf of yourself and your heirs, executors, personal representatives, successors, and assigns (each a &#8220;<FONT style='border-bottom:1px solid #000000'>Releasor</FONT>&#8221; and collectively, &#8220;<FONT style='border-bottom:1px solid #000000'>Releasors</FONT>&#8221;), hereby release and forever discharge the Company, all of its current and former parents, related entities, subsidiaries, and affiliates, and each of these entities&#8217; current and former employees, officers, shareholders, owners, directors, members, partners, agents, insurers, contractors, attorneys, successors, and assigns, in both their individual and official capacities, as appropriate (each a &#8220;<FONT style='border-bottom:1px solid #000000'>Releasee</FONT>&#8221; and collectively &#8220;<FONT style='border-bottom:1px solid #000000'>Releasees</FONT>&#8221;), of and from any and all claims, complaints, demands, actions, causes of action, suits, rights, debts, obligations, judgments, damages, entitlements, liabilities, and expenses (including attorneys&#8217; fees), of any kind or nature whatsoever (collectively, &#8220;<FONT style='border-bottom:1px solid #000000'>Claims</FONT>&#8221;), that any Releasor now has or ever had against any Releasee, whether known or unknown, suspected or unsuspected, or concealed or apparent (the Claims released by this paragraph may collectively be referred to as the &#8220;<FONT style='border-bottom:1px solid #000000'>Released Claims</FONT>&#8221;).&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>b.</KBD><KBD style=margin-left:108pt></KBD>For the avoidance of doubt, and without limiting the broad nature of the Released Claims, this Agreement releases each of the Releasees from any and all Claims: (1)&#160;related to your employment with the Company or any other Releasee and the termination of such employment; (2) arising under any law relating to employment, including, but not limited to (all as amended), Title VII of the Civil Rights Act of 1964, the Americans with Disabilities Act of 1990, the Family and Medical Leave Act of 1993, the Age Discrimination in Employment Act of 1967, the Older Workers Benefit Protection Act of 1990, the Worker Adjustment and Retraining Notification Act of 1988, the Equal Pay Act of 1963, the Genetic Information Nondiscrimination Act of 2008, the Civil Rights Act of 1866 (42 U.S.C. &#167;&#167;&nbsp;1981&#8211;1988), the Immigration Reform and Control Act of 1986, the Employee Retirement and Income Security Act of 1974 (&#8220;<FONT style='border-bottom:1px solid #000000'>ERISA</FONT>&#8221;), the Families First Coronavirus Response Act of 2020, the Coronavirus Aid, Relief, and Economic Security Act of 2020, the American Rescue Plan Act &nbsp;</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>1</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=justify style='font:12pt Times New Roman;margin:0'>of 2021, Articles 5, 6, 7, and 19 of the New York Labor Law (N.Y. Labor Law &#167;&#167;&nbsp;160 to 219-c, 650 to 665), Sections 120, 125, and 241 of the New York Workers&#8217; Compensation Law, the New York Human Rights Law (N.Y. Executive Law &#167;&#167;&nbsp;290 to 301), the New York State Civil Rights Law (N.Y. Civ. Rights Law &#167;&#167;&nbsp;40 to 45), Article 23-A of the New York State Corrections Law, the New York Worker Adjustment and Retraining Notification Act (N.Y. Lab. Law &#167;&#167;&nbsp;860&#160;to&#160;860-I;&#160;12 N.Y.C.R.R. &#167;&#160;921-1.0&#160;to&#160;921-9.1), the New York Paid Family Leave Law, , and any and all federal, state and local laws that may be legally waived, (3) for wages, wage supplements, bonuses, commissions, incentive compensation, vacation, paid time off, severance pay, or any other form of compensation that may be legally waived; (4) arising under any employee benefit plan, policy, or practice; (5) arising under tort, contract, or quasi-contract law, including but not limited to claims of negligence, breach of an expressed or implied contract, tortious interference with contract or prospective business advantage, breach of the covenant of good faith and fair dealing, promissory estoppel, quantum meruit, detrimental reliance, retaliation, violation of public policy, invasion of privacy, nonphysical injury, personal injury or sickness or any other harm, constructive termination, wrongful or retaliatory discharge, fraud, concealment, defamation, slander, libel, false imprisonment, negligent misrepresentation, or negligent or intentional infliction of emotional distress; (6) for monetary or equitable relief, including but not limited to attorneys&#8217; fees, back pay, front pay, reinstatement, compensatory or punitive damages, liquidated damages, experts&#8217; fees, medical fees or expenses, costs or disbursements; and (7) arising under any other foreign, federal, state, or local law, statute, amendment, rule, regulation, order, code, common law, policy, ordinance, guideline, or court decision.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:72pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>c.</KBD><KBD style=margin-left:108pt></KBD>Notwithstanding anything to the contrary, the Released Claims do not include any claim: (1) to enforce this Agreement or the Retirement Agreement; (2) that arises exclusively after the date you sign this Agreement; (3) to undisputed vested rights under any of the Company&#8217;s employee benefit plans governed by ERISA; (4) for group health benefits continuation under the Consolidated Omnibus Budget Reconciliation Act&#160;or applicable state law; (5) to indemnification under the Company&#8217;s bylaws, or (6) that cannot be released under law, such as claims for statutory unemployment benefits or workers&#8217; compensation benefits.&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'><B>4.</B></KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>Return of the Company Property</FONT>.<FONT style=color:#1F497D> </FONT>You represent and warrant that you have returned all Company property, including but not limited to keys, credit cards, security access cards, codes, login credentials, passwords, personal computers, cell phones, iPads, other electronic devices, memoranda, data, files, records, notes, and other information in your possession or under your control in any form. &nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'><B>5.</B></KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>No Admission</FONT>.<FONT style=color:#1F497D> </FONT>The making of this Agreement is not, and shall not be construed or represented as, an admission that the Company or any other Releasee has violated any law or has committed any wrong against you or any other person or entity.&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:72pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'><B>6.</B></KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>Severability, Choice of Law, and Venue</FONT>. If any provision of this Agreement is found to be illegal or unenforceable, such provision shall be modified to the minimum extent necessary to make it lawful and enforceable to carry out the intent and agreement of the Parties, and as so modified, it, together with the remainder of this Agreement, shall remain in full force and effect. If such provision cannot be modified to make it lawful and enforceable to carry out the intent and agreement of the Parties, then such provision shall be severed from this Agreement and this Agreement shall be construed as if such illegal or unenforceable provision had not been set forth in it, and the remainder of the Agreement shall remain in full force and effect. This Agreement shall be governed and construed in accordance with laws of the State &nbsp;</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>2</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=justify style='font:12pt Times New Roman;margin:0'>of New York, without regard to the principles of conflict of law. Any action or proceeding brought by either Party related to your employment or the termination of your employment, or to enforce this Agreement, shall be brought only in a state or federal court located in the State of New York, County of Erie. You hereby irrevocably submit to the exclusive jurisdiction of such courts and waive any and all defenses (including, but not limited to, defenses related to personal jurisdiction and inconvenience of forum) to the maintenance of any such action or proceeding in such venue.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:72pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'><B>7.</B></KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>Third Party Claims</FONT>. You warrant that you alone are entitled to the Transition Benefits, and further warrant and agree that any claim to such amounts by any other person or entity by reason of any claim, lien, or debt of yours, or otherwise, shall be your sole and exclusive responsibility, and that you will hold harmless, indemnify, and defend each of the Releasees from any claim or action brought by any person or entity against any of the Releasees making any claim to all or part of the Transition Benefits.&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'><B>8.</B></KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>Protected Rights</FONT>. Nothing in this Agreement limits your rights, protected under law, to file a charge or communicate with or otherwise participate in any investigation or proceeding conducted by the Occupational Safety and Health Administration, the Equal Employment Opportunity Commission, the National Labor Relations Board, or any other government agency charged with enforcement of any law. However, in view of the consideration provided to you under this Agreement, you release and waive any right to recover monetary damages as a result of such investigation, proceeding, or charge to the fullest extent permitted by law, except that nothing in this Agreement or otherwise will limit your right to seek and obtain a whistleblower award from the Securities and Exchange Commission pursuant to Section 21F of the Securities Exchange Act of 1934 or any similar rules or regulations.&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'><B>9.</B></KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>Entire Agreement</FONT>.<FONT style=color:#1F497D> </FONT>This Agreement and the Retirement Agreement constitute the entire agreement between you and the Company with respect to the subject matter of such agreements and supersedes any and all other written and oral agreements and understandings between you and the Company; provided that the provisions of your Employment Agreement with the Company dated June 1, 2018 which by their terms survive the termination of your employment shall survive the execution of this Agreement and shall remain binding upon you and in full force and effect in accordance with their terms.&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:72pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'><B>10.</B></KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>Miscellaneous</FONT>.<FONT style=color:#1F497D> </FONT>The Parties may sign this Agreement in counterparts, each of which will be deemed an original, and all of which taken together will constitute one and the same instrument. Delivery of a signed counterpart of this Agreement by facsimile, email in PDF format, or any other electronic means intended to preserve the original graphic and pictorial appearance of a document shall have the same effect as delivery of a signed original. The Company may assign this Agreement at any time. This Agreement shall inure to the benefit of the Company and its successors and assigns. You may not assign this Agreement or any part hereof. Any purported assignment by you shall be null and void from the initial date of purported assignment. No waiver by either Party of any breach by the other Party of any condition or provision of this Agreement shall be deemed a waiver of any similar or dissimilar provision or condition at the same or any prior or subsequent time, nor shall the failure of or delay by either of the Parties in exercising any right, power, or privilege operate as a waiver of that or any other right, power, or privilege.&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:72pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:36pt'><B>11.</B></KBD><KBD style=margin-left:72pt></KBD><FONT style='border-bottom:1px solid #000000'>Knowing and Voluntary Acknowledgments</FONT>.<FONT style=color:#1F497D> </FONT>You acknowledge, affirm, and agree that:&nbsp;</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>3</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>a.</KBD><KBD style=margin-left:108pt></KBD>You have read the Agreement in its entirety and understand all of its terms and conditions, as well as its legal and binding effect;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>b.</KBD><KBD style=margin-left:108pt></KBD>You are acting voluntarily, knowingly, and of your own free will in signing this Agreement, free from any duress or coercion;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>c.</KBD><KBD style=margin-left:108pt></KBD>The consideration to be provided to you under this Agreement and the Transition Benefits under the Retirement Agreement: (1)&#160;exceeds anything of value to which you would otherwise be entitled in the absence of this Agreement; (2) fully and completely resolves any and all claims you and any attorney you may have retained may have against the Company or any other Releasee for attorneys&#8217; fees, costs, disbursements, and the like; and (3) is sufficient consideration for your promises under this Agreement;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>d.</KBD><KBD style=margin-left:108pt></KBD>You have been advised by the Company in this writing to consult with an attorney of your choice before signing this Agreement and have done so to the extent you desired;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>e.</KBD><KBD style=margin-left:108pt></KBD>You have been afforded a reasonable period of time of more than 21 calendar days to consider the terms of this Agreement (the &#8220;<FONT style='border-bottom:1px solid #000000'>Consideration Period</FONT>&#8221;), although you may sign it sooner if desired, but not before the Retirement Date as defined by the Retirement Agreement; and you acknowledge and agree that if you sign this Agreement before the end of the Consideration Period, it is your voluntary decision to do so, and you waive the remainder of the Consideration Period; &nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>f.</KBD><KBD style=margin-left:108pt></KBD>You have until December 1, 2025 to deliver a signed copy of this Agreement to Tim Sopko, Chief Executive Officer, Taylor Devices, Inc. via email to timsopko@taylordevices.com or via mail to the Company, Attn: Tim Sopko, Chief Executive Officer, 90 Taylor Drive, North Tonawanda, New York 14120;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>g.</KBD><KBD style=margin-left:108pt></KBD>Any changes to this Agreement made after the date it is first given to you, whether they are material or immaterial, do not restart the Consideration Period;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>h.</KBD><KBD style=margin-left:108pt></KBD>You will have seven (7) days after signing this Agreement to revoke your release of Claims by delivering written notice of such revocation to Tim Sopko, Chief Executive Officer, Taylor Devices, Inc. via email to timsopoko@taylordevices.com before the end of the seven (7) day period;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>i.</KBD><KBD style=margin-left:108pt></KBD>In the event of such a revocation by you, this Agreement shall be null and void and the Company will have no obligations under it or to provide the Transition Benefits under the Retirement Agreement;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>j.</KBD><KBD style=margin-left:108pt></KBD>This Agreement shall not become effective until the eighth (8<SUP>th</SUP>) day after you sign this Agreement, provided that you have not exercised your right to revoke your release of Claims, and the date this Agreement becomes effective under this subsection (j) shall be the &#8220;Effective Date&#8221; of this Agreement.&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>k.</KBD><KBD style=margin-left:108pt></KBD>No payments or benefits due to you under this Agreement or any Transition Benefits under the Retirement Agreement will be made before the Effective Date;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>l.</KBD><KBD style=margin-left:108pt></KBD>You have been paid in full for all work you have performed for the Company and any other Releasee, and you have received all leave (paid or unpaid), compensation, wages, bonuses, commissions, and/or benefits to which you may be entitled and &nbsp;</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>4</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'>that no other leave (paid or unpaid), compensation, wages, bonuses, commissions and/or benefits are due to you, except as specifically provided in this Agreement and the Retirement Agreement; and</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:72pt'>m.</KBD><KBD style=margin-left:108pt></KBD>You have not made any claims or allegations against the Company or any other Releasee related to discrimination, harassment, sexual abuse, or retaliation, and the factual foundation for this Agreement does not in any way involve discrimination, harassment, sexual abuse, or retaliation.&nbsp;</P>
<P style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><B>IN WITNESS WHEREOF, the Parties have executed this Separation and Release Agreement as of the dates below.</B></P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><B>ALAN R. KLEMBCZYK</B></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='display:inline-block;width:180pt;border-bottom:1px solid #000000'>&nbsp;</KBD>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>Alan R. Klembczyk</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>Date:<KBD style='display:inline-block;width:154pt;border-bottom:1px solid #000000'>&nbsp;</KBD>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><B>TAYLOR DEVICES, INC.</B></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'>By:<KBD style='display:inline-block;width:162.65pt;border-bottom:1px solid #000000'>&nbsp;</KBD>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'>Name: <KBD style='display:inline-block;width:145pt;border-bottom:1px solid #000000'>&nbsp;</KBD>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'>Title: <KBD style='display:inline-block;width:151pt;border-bottom:1px solid #000000'>&nbsp;</KBD>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin-top:0pt;margin-bottom:12pt'>Date: <KBD style='display:inline-block;width:151pt;border-bottom:1px solid #000000'>&nbsp;</KBD>&nbsp;</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>5</P>
<P style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
</DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-19
<SEQUENCE>3
<FILENAME>td_ex19.htm
<DESCRIPTION>POLICY AGAINST INSIDER TRADING
<TEXT>
<HTML>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA34KPNR]. www.edgarsuite.com -->
<HEAD>
<TITLE>Policy Against Insider Trading</TITLE>
</HEAD>
<BODY>
<DIV style=margin-left:72pt;width:468pt><HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'><B>POLICY AGAINST INSIDER TRADING</B></P>
<P align=center style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>This Policy Against Insider Trading (this &#8220;Policy&#8221;) of Taylor Devices, Inc. (&#8220;Taylor Devices&#8221; or the &#8220;Company&#8221;) sets forth guidelines, described below, when buying or selling Taylor Devices common stock and other securities.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Persons subject to this Policy are obligated to maintain the confidentiality of information about the Company and to not engage in transactions in Company Securities (as defined below) while in possession of material nonpublic information. Persons subject to this Policy must not engage in illegal trading and must avoid the appearance of improper trading. In all cases, the responsibility for determining whether a person is in possession of material nonpublic information rests with that person, and any action on the part of the Company does not in any way constitute legal advice or insulate a person from liability under federal or state securities laws. You could be subject to severe legal penalties and disciplinary action by the Company for any conduct prohibited by this Policy or applicable securities laws, as described below in more detail under the heading &#8220;Consequences of Violations.&#8221;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:36pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><B>1</B></KBD><KBD style=margin-left:36pt></KBD><B>Insider Trading Prohibited</B>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'><B>Except in a Permitted Transaction, as described in Section 5 of this Policy, no Board member, employee or agent of Taylor Devices may purchase or sell any securities of Taylor Devices while aware of material nonpublic information concerning Taylor Devices, until at least one full trading day after the information has been fully disclosed to the public. &nbsp;If a Board member, employee or agent obtains any material nonpublic information while working for Taylor Devices regarding any other company, such person may not purchase or sell securities of that other company until at least one full trading day after the information has been fully disclosed to the public.</B></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(a)</I></KBD><KBD style=margin-left:18pt></KBD><I>Applicability</I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>This Policy applies to you if you are a Board member, employee or agent of the Company. &nbsp;This Policy also applies to members of your immediate family and any other persons who share your household, your economic dependents, and any person or entity you control. &#8220;Immediate family&#8221; means, for purposes of this Policy, your spouse, children, children away at college, stepchildren, grandchildren, parents, stepparents, grandparents, siblings, in-laws and any other family members whose transactions in Company Securities are directed by you or subject to your influence and control, such as parents or children who consult with you before they trade in Company Securities.  The Company will consider trades made at your direction, or at the direction of those named in the preceding sentence, as trades made by you. </P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>This Policy applies to all trading or other transactions in (i) Company securities, including common stock, options and any other securities that the Company may issue, such as preferred stock, notes, bonds and convertible securities, as well as to derivative securities relating to any of the Company&#8217;s securities, whether or not issued by the Company (collectively referred to herein as the &#8220;Company Securities&#8221;) and (ii) the securities of other companies where the person trading </P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>used information obtained while working for Taylor Devices, as described in more detail under the heading &#8220;Other Companies&#8221; below.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>There are no exceptions to this Policy, except as specifically noted herein. Transactions that may be necessary or justifiable for independent reasons (such as the need to raise money for an emergency expenditure), or small transactions, are not excepted from this Policy. Federal and state securities laws do not recognize any mitigating circumstances, and, in any event, even the appearance of an improper transaction must be avoided to preserve the Company&#8217;s reputation for adhering to the highest standards of conduct.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><I>(b) Material Nonpublic Information </I></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Information is considered &#8220;material&#8221; if (1) a reasonable investor would consider it important in deciding whether to buy, sell, or hold the security, or (2) a reasonable investor views the information as significantly altering the total mix of information in the marketplace about the issuer of the security. &nbsp;Information is &#8220;nonpublic&#8221; until it has been widely disseminated to the public, meaning that it is published in such a way as to provide broad distribution of the information to the public for a sufficient period so as to be reflected in the price of the security.  Examples include filing information with the Securities and Exchange Commission (&#8220;SEC&#8221;) or the issuing of a press release through the newswire services.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Any information that could be expected to affect the Company&#8217;s stock price, either positively or negatively, should be considered material. There is no bright-line standard for assessing materiality. Materiality is based on an assessment of all the facts and circumstances and is often evaluated by enforcement authorities with the benefit of hindsight. When doubt exists as to whether information would be considered material, the information should be presumed to be material. Examples of material nonpublic information may include, but is not limited to, the following:</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>information about financial performance or changes to previously announced guidance regarding financial performance;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>mergers and acquisitions;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>significant sales of assets;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>a restructuring or reorganization;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>changes in dividend policies, declaration of stock splits, stock buybacks or the offering of additional securities;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>changes in senior management or members of the Board;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>introduction of significant new products; &nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>pending or threatened significant litigation, or the resolution of such litigation;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>a significant cybersecurity incident, such as a material data breach; and&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>gains or losses of substantial customers or suppliers.  &nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><I>(c) Other Companies </I></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>This Policy prohibits you from trading in the securities (including debt securities) of any other company if you are in possession of material nonpublic information that was obtained in the </P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>2</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>course of performing your duties for the Company.  For example, you may be involved in a transaction where the Company is entering into a new venture or other relationship with another company that is material to the other company.  You are prohibited from trading in the securities of the other company for so long as the material information remains nonpublic.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><I>(d) Prohibited Transactions</I></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>In addition to the other restrictions set forth in this Policy, the following transactions are prohibited at all times:</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>trading in call or put options involving Company Securities and other derivative securities;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>engaging in short sales of Company Securities;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>holding Company Securities in margin status in a brokerage account;&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>all forms of hedging transactions, such as zero-cost collars and forward sale contracts; and&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:72pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-18pt'>&#183;</KBD>pledging Company Securities to secure margin or other loans.&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>If you are unsure whether a particular transaction is prohibited under this Policy, please consult with the Company&#8217;s Chief Financial Officer prior to engaging in or entering into that transaction. </P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:36pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><FONT style='border-bottom:1px solid #000000'><B>2</B></FONT></KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'><B>Unauthorized Disclosure of Material Nonpublic Information Prohibited </B></FONT>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'><B>No person subject to this Policy may disclose material nonpublic information about the Company, or any company with whom Taylor Devices transacts business to anyone outside the Company, including immediate family and friends, unless and until specifically authorized to do so by the Company. &nbsp;Authorized disclosure to persons not subject to this Policy may require the party to whom you are disclosing information similarly agree not to disclose the information or trade in the securities until the information is public.</B></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(a)</I></KBD><KBD style=margin-left:18pt></KBD><I>Tipping </I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>You can be held responsible, not only for your own insider trading, but also for trading by anyone to whom you disclosed material nonpublic information.  Even if those to whom you made disclosure do not trade while aware of the information, you are nevertheless responsible for trades by persons who received material nonpublic information indirectly from you, if you are the source of the information. Tippers can be subject to the same penalties and sanctions as tippees, even if the tipper did not profit from the transaction.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Even casual remarks made when recommending a purchase, sale, or hold of Company Securities or another company&#8217;s securities could be misconstrued by others as being based on material nonpublic information.  You must always exercise caution when making any recommendations. You should never trade, tip or recommend securities (or otherwise cause the purchase or sale of securities) while in possession of information that you have reason to believe </P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>3</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>is material and nonpublic unless you first consult with, and obtain the advance approval of, the Company&#8217;s Chief Financial Officer.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(b)</I></KBD><KBD style=margin-left:18pt></KBD><I>Authorization to Disclose Material Nonpublic Information </I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>The Company authorizes only certain Company employees and agents to make disclosures of material nonpublic information.  Unless authorized to do so by the Company&#8217;s Chief Financial Officer, you should refrain from discussing material nonpublic information with anyone not subject to this Policy.  Even in discussions with others subject to this Policy, you should restrict disseminating material nonpublic information to only employees and agents having a need to know that information. </P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:36pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><FONT style='border-bottom:1px solid #000000'><B>3</B></FONT></KBD><KBD style=margin-left:36pt></KBD><FONT style='border-bottom:1px solid #000000'><B>Blackout</B><B> Periods</B></FONT>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'><B>The persons listed on </B><FONT style='border-bottom:1px solid #000000'><B>Annex A</B></FONT><B> hereto (&#8220;Covered Persons&#8221;) may not purchase or sell Company Securities during the following blackout periods indicated: (a) during the period beginning on the first day of the last month of the fiscal quarter and ending at the close of trading on the first full trading day following the release of financial results for that fiscal quarter and (b) during any period when the Company has announced a blackout period with respect to a transaction or other event. &nbsp;The Company may, upon the advice of legal counsel, suspend a blackout period at any time upon a determination that the reason for the blackout period no longer exists.</B></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(a)</I></KBD><KBD style=margin-left:18pt></KBD><I>Pre-Clearance and Pre-Notification Procedures </I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Company directors and all executive officers subject to Section 16 of the Securities Exchange Act of 1934 (&#8220;Executive Officers&#8221;) are covered by the following pre-clearance procedures.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Directors and Executive Officers, together with their immediate family, may not engage in any transaction involving Company Securities (including a stock plan transaction such as an option exercise, or a gift, loan or contribution to a trust or any other transfer) without first obtaining pre-clearance of the transaction from the Company&#8217;s Chief Financial Officer. A request for pre-clearance should be submitted to the Chief Financial Officer at least two business days in advance of the proposed transaction.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>The Chief Financial Officer is under no obligation to approve a transaction submitted for pre-clearance, and may determine not to permit the trade. The Company&#8217;s Chief Financial Officer may not trade in Company Securities unless the Chief Executive Officer has approved the trade(s) in accordance with the pre-clearance procedures set forth in this section.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(b)</I></KBD><KBD style=margin-left:18pt></KBD><I>Pre-Earnings Blackouts </I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:27pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>The Company&#8217;s announcement of its quarterly financial results has the potential to have a material effect on the price of Company Securities. Because of the particular sensitivity of trading by those who have access to the Company&#8217;s financial statements while they are being prepared, </P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>4</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>all Covered Persons are subject to blackout on trading during the period beginning on the first day of the last month of the fiscal quarter and ending after the first full business day following the release of the Company&#8217;s financial results for that fiscal quarter. Covered Persons will be notified in writing in advance of the opening of a trading window. </P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:27pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>If you are a Covered Person subject to this section, you are still subject to Section 1 (which prohibits transactions at any time when you are aware of material nonpublic information) during periods outside the blackout period. &nbsp;For example, you are not necessarily free to trade in the second month of each quarter simply because it is not during a blackout period. &nbsp;You must also be certain that you are not aware of material nonpublic information during these periods or otherwise prohibited from trading under this Policy.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(c)</I></KBD><KBD style=margin-left:18pt></KBD><I>Event-Specific Blackouts </I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:27pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>The Company may impose a trading blackout from time to time on its directors, employees or agents when, upon the advice of legal counsel, a blackout is warranted.  While blackouts generally arise because the Company is involved in a highly-sensitive transaction, they may be declared for any reason. &nbsp;If a blackout is declared to which you are subject, you will be notified in writing when the blackout begins and ends. These event-specific blackout periods may vary in length and may or may not be broadly communicated to other persons. Unless otherwise specified, the Company will re-open trading on the beginning of the second trading day following public disclosure of the significant corporate development or after the termination of any pending development, as applicable. You are prohibited from disclosing to others that you are subject to an event-specific blackout period without the Company&#8217;s written consent.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:27pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(d)</I></KBD><KBD style=margin-left:18pt></KBD><I>Company Award Blackouts</I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Company practice is not to award any stock options or other equity-based awards when the Company is in possession of material nonpublic information. &nbsp;For the sake of safety, the Company will not award any options or other equity-based awards within the four business days that precede any planned release date for its current financial information.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(e)</I></KBD><KBD style=margin-left:18pt></KBD><I>Exception for Approved Rule 10b5-1 Plans</I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Rule 10b5-1 under the Exchange Act provides a defense from insider trading liability under Rule 10b-5. To be eligible to rely on this defense, a person subject to this Policy must enter into a Rule 10b5-1 plan for transactions in Company securities that meets certain conditions specified in Rule 10b5-1 (a &#8220;Rule 10b5-1 Plan&#8221;). If the plan meets the requirements of Rule 10b5-1, transactions in Company Securities may occur even when the person who has entered into the plan is aware of material nonpublic information.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>To comply with the Rule, a Rule 10b5-1 Plan must be approved by the Company&#8217;s Chief Financial Officer and meet the requirements of Rule 10b5-1. A Rule 10b5-1 Plan must be entered into before you are aware of material nonpublic information and may not be adopted during a blackout period. Once the plan is adopted, you must not exercise any influence over the amount of Company Securities to be traded pursuant to the Rule 10b5-1 Plan, the price at which they are to </P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>5</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>be traded or the date of the trade. The Rule 10b5-1 Plan must either specify (including by algorithm or formula) the amount, pricing and timing of transactions in advance or delegate discretion on those matters to an independent third party. The Rule 10b5-1 Plan must include a cooling-off period before trading can commence that, for directors or Executive Officers, ends on the later of 90 days after the adoption of the Rule 10b5-1 Plan or two business days following the disclosure of the Company&#8217;s financial results in an SEC periodic report for the fiscal quarter in which the Rule 10b5-1 Plan was adopted (but in any event, the required cooling-off period is subject to a maximum of 120 days after adoption of the Rule 10b5-1 Plan), and for persons other than directors or Executive Officers, 30 days following the adoption or modification of a Rule 10b5-1 Plan. A person may not enter into overlapping Rule 10b5-1 Plans (subject to certain exceptions) and may only enter into one single-trade Rule 10b5-1 Plan during any 12-month period (subject to certain exceptions). Directors and officers must include a representation in their Rule 10b5-1 Plan certifying that: (i) they are not aware of any material nonpublic information; and (ii) they are adopting the plan in good faith and not as part of a plan or scheme to evade the prohibitions in Rule 10b-5. All persons entering into a Rule 10b5-1 Plan must act in good faith with respect to that Rule 10b5-1 Plan.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>The Company requires that any Rule 10b5-1 Plan must be submitted for approval to the Company&#8217;s Chief Financial Officer five days prior to entry into the Rule 10b5-1 Plan. SEC rules and regulations require the Company to disclose any Rule 10b5-1 Plan entered into by an Executive Officer or director in its 10-Q and 10-K reports.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(f)</I></KBD><KBD style=margin-left:18pt></KBD><I>Questions Regarding Trading Blackouts </I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Please direct questions regarding trading blackouts to the Chief Financial Officer.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:36pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:-36pt'><B>4</B></KBD><B>Requirement that Board Members and Executive Officers Provide Notice of Transactions.</B>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'><B>All Executive Officers and directors (referred to as &#8220;Section 16 Insiders&#8221;) are subject to the SEC&#8217;s insider trading rules under Section 16 of the Exchange Act. &nbsp;If Section 16 Insiders acquire or dispose of Company Securities, they must report the transaction to the SEC on Form 4 within two business days of the date of the transaction. &nbsp;The report must include the date, quantity, price, and the nature of the transaction.</B></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(a)</I></KBD><KBD style=margin-left:18pt></KBD><I>Notification</I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Because the securities laws require Section 16 Insiders to report most transactions to the SEC on Form 4 within two business days following the date of the transaction, this Policy requires them to promptly report the details to the designated Chief Financial Officer or the Chief Financial Officer&#8217;s designee before the close of business on the day of the execution of the transaction.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(b)</I></KBD><KBD style=margin-left:18pt></KBD><I>Gifts and Ownership by Family Members</I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>If a member of the immediate family of a Section 16 Insider who shares the same household as the Section 16 Insider acquires or disposes of Company Securities, federal securities laws </P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>6</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>require the Section 16 Insider to report the transaction within the two business day deadline. &nbsp;If a Section 16 Insider controls Company Securities through whole or partial ownership or control of a corporation, partnership, limited liability company or other entity, then transactions in those shares, in most cases, must be reported to the SEC within two business days. &nbsp;Section 16 Insiders must also report any gifts of Company Securities that they make, although not necessarily with the SEC&#8217;s two business day deadline.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><B>5</B></KBD><KBD style=margin-left:36pt></KBD><B>Permitted Transactions </B>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>The following &#8220;Permitted Transactions&#8221; are allowed at any time, regardless of whether there is a blackout period, or whether you have material nonpublic information.  All other transactions are allowed at any time, except during any time when you have material nonpublic information, or (if you are a Covered Person) during any Company blackout period.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><B>Permitted Transactions include: </B></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:45pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-9pt'><B>&#183;</B></KBD><KBD style=margin-left:27pt></KBD><B>The purchase of Company Securities under any automatic Company dividend reinvestment plan, if applicable (but note that this Policy applies to the voluntary purchases of Company Securities resulting from additional contributions you choose to make to any dividend reinvestment plan, and to your election to participate in or increase your level of participation in the plan); </B>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:45pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:45pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-9pt'><B>&#183;</B></KBD><KBD style=margin-left:27pt></KBD><B>acceptance of a stock option issued or offered under one of Taylor Devices employee stock option plans or the cancellation or forfeiture of options pursuant to the plans;</B>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:45pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:45pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-9pt'>&#183;</KBD><KBD style=margin-left:27pt></KBD><B>vesting of stock options; </B>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:45pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:45pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-9pt'><B>&#183;</B></KBD><KBD style=margin-left:27pt></KBD><B>exercise of stock options <I>by payment of cash only </I>(but note that this Policy applies to the payment of the exercise price in shares of stock and the sale of the stock acquired in the option exercise); </B>&nbsp;</P>
<P style='font:12pt Times New Roman;margin:0;margin-left:36pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:45pt'><KBD style='position:absolute;font:12pt Symbol;margin-left:-9pt'><B>&#183;</B></KBD><KBD style=margin-left:27pt></KBD><B>any other transaction designated by the Board of Directors or any committee thereof as a Permitted Transaction under this Policy.</B>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:45pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><B>6 </B></KBD><KBD style=margin-left:36pt></KBD><B>Consequences of Violations </B>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Strict compliance with these procedures by each person subject to this Policy at every level is expected. Non-compliance will be a basis for termination of employment for cause. Insider trading violations are pursued vigorously by the SEC and other law enforcement authorities. Penalties for trading on or communicating material nonpublic information can be severe, both for individuals involved in the unlawful conduct and their employers and supervisors, and may include jail terms, criminal fines, civil penalties and civil enforcement injunctions.</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>7</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><B>7 </B></KBD><KBD style=margin-left:36pt></KBD><B>Post-Termination Transactions</B>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>This Policy continues to apply to transactions in Company Securities even after termination of service to the Company. If a person is in possession of material nonpublic information when the person&#8217;s service terminates, that person may not engage in transactions in Company Securities until that information has become public or is no longer material. </P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><B>8 </B></KBD><KBD style=margin-left:36pt></KBD><B>Administration of Policy </B>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:21.6pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:-21.6pt'>(a)</KBD><I>Administration by the Chief Financial Officer</I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Day-to-day administration of this Policy is carried out by the Chief Financial Officer, and any questions concerning the interpretation of the Policy should be directed to the Chief Financial Officer. All determinations and interpretations of this Policy by the Chief Financial Officer shall be final and not subject to further review.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'> &nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(b)</I></KBD><KBD style=margin-left:18pt></KBD><I>Confidentiality of Policy Decisions </I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Employees should keep certain information concerning the operation of this Policy in strict confidence, because knowledge of certain decisions made in applying this Policy may constitute material nonpublic information.  For example, if you become subject to a special blackout, as described in Section 3, you are obligated to keep that fact confidential.</P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(c)</I></KBD><KBD style=margin-left:18pt></KBD><I>Acknowledgement and Certification</I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>Each person subject to this Policy is required to sign the acknowledgement and certification form attached hereto as <FONT style='border-bottom:1px solid #000000'>Annex B</FONT>.</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'><KBD style='position:absolute;font:12pt Times New Roman;margin-left:0pt'><I>(d)</I></KBD><KBD style=margin-left:18pt></KBD><I>Amendment of the Policy </I>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'>The Company reserves the right to amend and interpret this Policy from time to time. </P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'><B>Remember, the ultimate responsibility for complying with this Policy and applicable laws and regulations rests with you.  You should use your best judgment and consult with your legal and financial advisors, as needed.</B></P>
<P align=justify style='font:12pt Times New Roman;margin:0;text-indent:36pt'><B> </B>&nbsp;</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>8</P>
<HR style='page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0'><P style=line-height:0;margin:0></P>
<P align=justify style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:12pt Times New Roman;margin:0'><B>ANNEX A</B></P>
<P align=center style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:12pt Times New Roman;margin:0'><B>Covered Persons</B></P>
<P style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P style='font:12pt Times New Roman;margin:0'>Each member of the Taylor Devices, Inc. Board of Directors.</P>
<P style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P style='font:12pt Times New Roman;margin:0'>Each executive officer of Taylor Devices, Inc. subject to the reporting requirements of Section 16 of the Securities Exchange Act of 1934.</P>
<P style='font:12pt Times New Roman;margin:0'>&nbsp;</P>
<P style='font:12pt Times New Roman;margin:0'>All other Taylor Devices, Inc. officers (e.g. Treasurer, Corporate Secretary).</P>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=center style='font:12pt Times New Roman;margin:0'>9</P>
</DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>4
<FILENAME>td_ex31z1.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<HTML>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA34KPNR]. www.edgarsuite.com -->
<HEAD>
<TITLE>Certification</TITLE>
</HEAD>
<BODY>
<DIV style=margin-left:57.6pt;width:496.8pt><P align=justify style='font:10pt Times New Roman;margin:0;text-indent:-36pt;margin-left:36pt'><B>Exhibit 31(i)</B></P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'><B>CERTIFICATION OF CHIEF EXECUTIVE OFFICER</B></P>
<P align=center style='font:10pt Times New Roman;margin:0'><B>PURSUANT TO RULE 13a-14(a) OF THE SECURITIES EXCHANGE ACT OF 1934,</B></P>
<P align=center style='font:10pt Times New Roman;margin:0'><B>AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</B></P>
<P style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'>I, Timothy J. Sopko, certify that:</P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>1. I have reviewed this annual report on Form 10-K of Taylor Devices, Inc.;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>2. Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report; </P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>3. Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>4. The registrant&#8217;s other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(a) Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(b) Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(c) Evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(d) Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting; and</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt;margin-right:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>5. The registrant&#8217;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of registrant&#8217;s board of directors (or persons performing the equivalent functions):</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(a) All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#8217;s ability to record, process, summarize and report financial information; and</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(b) Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<TABLE style=border-collapse:collapse;margin-left:6pt><TR><TD valign=top style=width:211.5pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'><A name=_Aci_Pg1 />Date: August 15, 2025</P>
</TD><TD valign=top style='width:157.5pt;padding-left:6pt;padding-right:6pt;border-bottom:0.5pt solid #000000'><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>/s/ Timothy J. Sopko</P>
</TD></TR>
<TR><TD valign=top style=width:211.5pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>&nbsp;</P>
</TD><TD valign=top style='width:157.5pt;padding-left:6pt;padding-right:6pt;border-top:0.5pt solid #000000'><P style='font:10pt Times New Roman;margin:0'>Timothy J. Sopko </P>
<P style='font:12pt Times New Roman;margin:0'><FONT style=font-size:10pt>Chief Executive Officer</FONT></P>
</TD></TR>
</TABLE>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'></DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>5
<FILENAME>td_ex31z2.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<HTML>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA34KPNR]. www.edgarsuite.com -->
<HEAD>
<TITLE>Certification</TITLE>
</HEAD>
<BODY>
<DIV style=margin-left:57.6pt;width:496.8pt><P align=justify style='font:10pt Times New Roman;margin:0;text-indent:-36pt;margin-left:36pt'><B>Exhibit 31(ii)</B></P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'><B>CERTIFICATION OF CHIEF FINANCIAL OFFICER</B></P>
<P align=center style='font:10pt Times New Roman;margin:0'><B>PURSUANT TO RULE 13a-14(a) OF THE SECURITIES EXCHANGE ACT OF 1934,</B></P>
<P align=center style='font:10pt Times New Roman;margin:0'><B>AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</B></P>
<P style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'>I, Paul Heary, certify that:</P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>1. I have reviewed this annual report on Form 10-K of Taylor Devices, Inc.;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>2. Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report; </P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>3. Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>4. The registrant's other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(a) Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(b) Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(c) Evaluated the effectiveness of the registrant's disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(d) Disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting; and</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt;margin-right:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>5. The registrant's other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of registrant's board of directors (or persons performing the equivalent functions):</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:18pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(a) All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize and report financial information; and</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;margin-left:36pt;margin-right:36pt'>(b) Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<TABLE style=border-collapse:collapse;margin-left:6pt><TR><TD valign=top style=width:211.5pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:0pt'><A name=_Aci_Pg1 />Date: August 15, 2025</P>
</TD><TD valign=top style='width:175.5pt;padding-left:6pt;padding-right:6pt;border-bottom:0.5pt solid #000000'><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:0pt'>/s/ Paul Heary</P>
</TD></TR>
<TR><TD valign=top style=width:211.5pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>&nbsp;</P>
</TD><TD valign=top style='width:175.5pt;padding-left:6pt;padding-right:6pt;border-top:0.5pt solid #000000'><P style='font:10pt Times New Roman;margin:0'>Paul Heary</P>
<P style='font:10pt Times New Roman;margin:0'>Chief Financial Officer</P>
</TD></TR>
</TABLE>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'></DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>6
<FILENAME>td_ex32z1.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<HTML>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA34KPNR]. www.edgarsuite.com -->
<HEAD>
<TITLE>Certification</TITLE>
</HEAD>
<BODY>
<DIV style=margin-left:72pt;width:468pt><P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'><B>Exhibit 32(i)</B></P>
<P align=center style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'><B>CERTIFICATION OF CHIEF EXECUTIVE OFFICER</B></P>
<P align=center style='font:10pt Times New Roman;margin:0;text-indent:36pt'><B>PURSUANT TO 18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO SECTION 906 </B></P>
<P align=center style='font:10pt Times New Roman;margin:0;text-indent:36pt'><B>OF THE SARBANES-OXLEY ACT OF 2002</B></P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'><KBD style=margin-left:36pt></KBD>In connection with the annual report of Taylor Devices, Inc. (the &#8220;Company&#8221;) on <A name=_Hlk47539060 />Form 10-K for the fiscal year ended May 31, 2025 to be filed with Securities and Exchange Commission on or about the date hereof (the &quot;Report&quot;), I, Timothy J. Sopko, Chief Executive Officer of the Company, certify, pursuant to Section&#160;906 of the Sarbanes-Oxley Act of 2002, 18&#160;U.S.C. Section 1350, that:&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'><KBD style=margin-left:36pt></KBD>(1) The Report fully complies with the requirements of Section&#160;13(a) or 15(d) of the Securities Exchange Act of 1934 (the &#8220;Exchange Act&#8221;); and&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;text-indent:36pt'>(2) The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company as of the dates and for the periods covered by the Report.</P>
<P align=justify style='font:10pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;text-indent:36pt'>It is not intended that this statement be deemed to be filed for purposes of the Exchange Act.</P>
<P align=justify style='font:10pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P style='font:10pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<TABLE style=border-collapse:collapse;margin-left:6pt><TR><TD valign=top style=width:216pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>Date: August 15, 2025</P>
</TD><TD valign=top style=width:36pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>By:</P>
</TD><TD valign=top style='width:153pt;padding-left:6pt;padding-right:6pt;border-bottom:0.5pt solid #000000'><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'> /s/ Timothy J. Sopko</P>
</TD></TR>
<TR><TD valign=top style=width:216pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>&nbsp;</P>
</TD><TD valign=top style=width:36pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>&nbsp;</P>
</TD><TD valign=top style='width:153pt;padding-left:6pt;padding-right:6pt;border-top:0.5pt solid #000000'><P style='font:10pt Times New Roman;margin:0'>Timothy J. Sopko </P>
<P style='font:10pt Times New Roman;margin:0'>Chief Executive Officer</P>
<P style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:2.85pt'>&nbsp;</P>
</TD></TR>
</TABLE>
<P style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
</DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>7
<FILENAME>td_ex32z2.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<HTML>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA34KPNR]. www.edgarsuite.com -->
<HEAD>
<TITLE>Certification</TITLE>
</HEAD>
<BODY>
<DIV style=margin-left:72pt;width:468pt><HR style='border:0;height:0;width:0;margin:14pt 0 0 0'><P align=justify style='font:10pt Times New Roman;margin:0'><B>Exhibit 32(ii)</B></P>
<P align=center style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0'><B>CERTIFICATION OF CHIEF FINANCIAL OFFICER</B></P>
<P align=center style='font:10pt Times New Roman;margin:0;text-indent:36pt'><B>PURSUANT TO 18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO SECTION 906 </B></P>
<P align=center style='font:10pt Times New Roman;margin:0;text-indent:36pt'><B>OF THE SARBANES-OXLEY ACT OF 2002</B></P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'><KBD style=margin-left:36pt></KBD>In connection with the annual report of Taylor Devices, Inc. (the &quot;Company&quot;) on Form 10-K for the fiscal year ended May 31, 2025 to be filed with Securities and Exchange Commission on or about the date hereof (the &quot;Report&quot;), I, Paul Heary, Chief Financial Officer of the Company, certify, pursuant to Section&#160;906 of the Sarbanes-Oxley Act of 2002, 18&#160;U.S.C. Section 1350, that:&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'><KBD style=margin-left:36pt></KBD>(1) The Report fully complies with the requirements of Section&#160;13(a) or 15(d) of the Securities Exchange Act of 1934 (the &#8220;Exchange Act&#8221;); and&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;text-indent:36pt'>(2) The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company as of the dates and for the periods covered by the Report.</P>
<P align=justify style='font:10pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=justify style='font:10pt Times New Roman;margin:0;text-indent:36pt'>It is not intended that this statement be deemed to be filed for purposes of the Exchange Act.</P>
<P align=justify style='font:10pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P align=center style='font:10pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<P style='font:10pt Times New Roman;margin:0;text-indent:36pt'>&nbsp;</P>
<TABLE style=border-collapse:collapse;margin-left:6pt><TR><TD valign=top style=width:216pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>Date: August 15, 2025</P>
</TD><TD valign=top style=width:40.5pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>By:</P>
</TD><TD valign=top style='width:157.5pt;padding-left:6pt;padding-right:6pt;border-bottom:0.5pt solid #000000'><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>/s/ Paul Heary</P>
</TD></TR>
<TR><TD valign=top style=width:216pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>&nbsp;</P>
</TD><TD valign=top style=width:40.5pt;padding-left:6pt;padding-right:6pt><P style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:2.85pt'>&nbsp;</P>
</TD><TD valign=top style='width:157.5pt;padding-left:6pt;padding-right:6pt;border-top:0.5pt solid #000000'><P style='font:10pt Times New Roman;margin:0'>Paul Heary </P>
<P style='font:10pt Times New Roman;margin:0'>Chief Financial Officer</P>
<P style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:2.85pt'>&nbsp;</P>
</TD></TR>
</TABLE>
<HR style='border:0;height:0;width:0;margin:14pt 0 0 0'></DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>8
<FILENAME>tayd-20250531_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version='1.0' encoding='iso-8859-1'?>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA3WEKVX]. www.edgarsuite.com -->
<link:linkbase xmlns="http://www.xbrl.org/2003/linkbase"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"
		xmlns:fil="http://taylordevices.com/20250531"
		xmlns:link="http://www.xbrl.org/2003/linkbase"
		xmlns:xlink="http://www.w3.org/1999/xlink"
		xmlns:xbrldt="http://xbrl.org/2005/xbrldt"
		xmlns:xbrli="http://www.xbrl.org/2003/instance">
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedBalanceSheets"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent' xlink:label='us-gaap_AssetsCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue' xlink:label='us-gaap_CashAndCashEquivalentsAtCarryingValue'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_AssetsCurrent' xlink:to='us-gaap_CashAndCashEquivalentsAtCarryingValue' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermInvestments' xlink:label='us-gaap_ShortTermInvestments'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_AssetsCurrent' xlink:to='us-gaap_ShortTermInvestments' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:label='us-gaap_AccountsAndOtherReceivablesNetCurrent'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_AssetsCurrent' xlink:to='us-gaap_AccountsAndOtherReceivablesNetCurrent' use='optional' order='3.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryPartsAndComponentsNetOfReserves' xlink:label='us-gaap_InventoryPartsAndComponentsNetOfReserves'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_AssetsCurrent' xlink:to='us-gaap_InventoryPartsAndComponentsNetOfReserves' use='optional' order='4.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseCurrent' xlink:label='us-gaap_PrepaidExpenseCurrent'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_AssetsCurrent' xlink:to='us-gaap_PrepaidExpenseCurrent' use='optional' order='5.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent' xlink:label='us-gaap_OtherAssetsCurrent'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_AssetsCurrent' xlink:to='us-gaap_OtherAssetsCurrent' use='optional' order='6.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms' xlink:label='us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_AssetsCurrent' xlink:to='us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms' use='optional' order='7.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets' xlink:label='us-gaap_Assets'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_Assets' xlink:to='us-gaap_AssetsCurrent' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherInventoryNoncurrent' xlink:label='us-gaap_OtherInventoryNoncurrent'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_Assets' xlink:to='us-gaap_OtherInventoryNoncurrent' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet' xlink:label='us-gaap_PropertyPlantAndEquipmentNet'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_Assets' xlink:to='us-gaap_PropertyPlantAndEquipmentNet' use='optional' order='3.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill' xlink:label='us-gaap_IntangibleAssetsNetExcludingGoodwill'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_Assets' xlink:to='us-gaap_IntangibleAssetsNetExcludingGoodwill' use='optional' order='4.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent' xlink:label='us-gaap_OtherAssetsMiscellaneousNoncurrent'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_Assets' xlink:to='us-gaap_OtherAssetsMiscellaneousNoncurrent' use='optional' order='5.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent' xlink:label='us-gaap_OtherAssetsNoncurrent'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_Assets' xlink:to='us-gaap_OtherAssetsNoncurrent' use='optional' order='6.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxAssetsNet' xlink:label='us-gaap_DeferredIncomeTaxAssetsNet'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_Assets' xlink:to='us-gaap_DeferredIncomeTaxAssetsNet' use='optional' order='7.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent' xlink:label='us-gaap_LiabilitiesCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent' xlink:label='us-gaap_AccountsPayableCurrent'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_LiabilitiesCurrent' xlink:to='us-gaap_AccountsPayableCurrent' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesCurrent' xlink:label='us-gaap_AccruedLiabilitiesCurrent'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_LiabilitiesCurrent' xlink:to='us-gaap_AccruedLiabilitiesCurrent' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BillingsInExcessOfCostCurrent' xlink:label='us-gaap_BillingsInExcessOfCostCurrent'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_LiabilitiesCurrent' xlink:to='us-gaap_BillingsInExcessOfCostCurrent' use='optional' order='3.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedIncomeTaxes' xlink:label='us-gaap_AccruedIncomeTaxes'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_LiabilitiesCurrent' xlink:to='us-gaap_AccruedIncomeTaxes' use='optional' order='4.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity' xlink:label='us-gaap_LiabilitiesAndStockholdersEquity'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_LiabilitiesAndStockholdersEquity' xlink:to='us-gaap_LiabilitiesCurrent' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity' xlink:label='us-gaap_StockholdersEquity'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_LiabilitiesAndStockholdersEquity' xlink:to='us-gaap_StockholdersEquity' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue' xlink:label='us-gaap_CommonStockValue'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_StockholdersEquity' xlink:to='us-gaap_CommonStockValue' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital' xlink:label='us-gaap_AdditionalPaidInCapital'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_StockholdersEquity' xlink:to='us-gaap_AdditionalPaidInCapital' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit' xlink:label='us-gaap_RetainedEarningsAccumulatedDeficit'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_StockholdersEquity' xlink:to='us-gaap_RetainedEarningsAccumulatedDeficit' use='optional' order='3.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockValue' xlink:label='us-gaap_TreasuryStockValue'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_StockholdersEquity' xlink:to='us-gaap_TreasuryStockValue' use='optional' order='4.0' weight='-1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedStatementsOfIncome"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit' xlink:label='us-gaap_GrossProfit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues' xlink:label='us-gaap_Revenues'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_GrossProfit' xlink:to='us-gaap_Revenues' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold' xlink:label='us-gaap_CostOfGoodsAndServicesSold'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_GrossProfit' xlink:to='us-gaap_CostOfGoodsAndServicesSold' use='optional' order='2.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss' xlink:label='us-gaap_OperatingIncomeLoss'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_OperatingIncomeLoss' xlink:to='us-gaap_GrossProfit' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense' xlink:label='us-gaap_ResearchAndDevelopmentExpense'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_OperatingIncomeLoss' xlink:to='us-gaap_ResearchAndDevelopmentExpense' use='optional' order='2.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingGeneralAndAdministrativeExpense' xlink:label='us-gaap_SellingGeneralAndAdministrativeExpense'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_OperatingIncomeLoss' xlink:to='us-gaap_SellingGeneralAndAdministrativeExpense' use='optional' order='3.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest' xlink:label='us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest' xlink:to='us-gaap_OperatingIncomeLoss' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonoperatingIncomeExpense' xlink:label='us-gaap_NonoperatingIncomeExpense'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest' xlink:to='us-gaap_NonoperatingIncomeExpense' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InvestmentIncomeInterest' xlink:label='us-gaap_InvestmentIncomeInterest'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NonoperatingIncomeExpense' xlink:to='us-gaap_InvestmentIncomeInterest' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpense' xlink:label='us-gaap_OtherNonoperatingIncomeExpense'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NonoperatingIncomeExpense' xlink:to='us-gaap_OtherNonoperatingIncomeExpense' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss' xlink:label='us-gaap_NetIncomeLoss'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetIncomeLoss' xlink:to='us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit' xlink:label='us-gaap_IncomeTaxExpenseBenefit'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetIncomeLoss' xlink:to='us-gaap_IncomeTaxExpenseBenefit' use='optional' order='2.0' weight='-1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedStatementsOfCashFlows"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:label='us-gaap_NetCashProvidedByUsedInOperatingActivities'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss' xlink:label='us-gaap_NetIncomeLoss'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_NetIncomeLoss' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Depreciation' xlink:label='us-gaap_Depreciation'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_Depreciation' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AcquisitionCosts' xlink:label='us-gaap_AcquisitionCosts'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_AcquisitionCosts' use='optional' order='3.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockOptionPlanExpense' xlink:label='us-gaap_StockOptionPlanExpense'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_StockOptionPlanExpense' use='optional' order='4.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt' xlink:label='us-gaap_GainsLossesOnExtinguishmentOfDebt'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_GainsLossesOnExtinguishmentOfDebt' use='optional' order='5.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GainLossOnCondemnation' xlink:label='us-gaap_GainLossOnCondemnation'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_GainLossOnCondemnation' use='optional' order='6.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxesAndTaxCredits' xlink:label='us-gaap_DeferredIncomeTaxesAndTaxCredits'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_DeferredIncomeTaxesAndTaxCredits' use='optional' order='7.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable' xlink:label='us-gaap_IncreaseDecreaseInAccountsReceivable'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_IncreaseDecreaseInAccountsReceivable' use='optional' order='8.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories' xlink:label='us-gaap_IncreaseDecreaseInInventories'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_IncreaseDecreaseInInventories' use='optional' order='9.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense' xlink:label='us-gaap_IncreaseDecreaseInPrepaidExpense'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_IncreaseDecreaseInPrepaidExpense' use='optional' order='10.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherCurrentAssets' xlink:label='us-gaap_IncreaseDecreaseInOtherCurrentAssets'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_IncreaseDecreaseInOtherCurrentAssets' use='optional' order='11.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities' xlink:label='us-gaap_IncreaseDecreaseInOtherOperatingLiabilities'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_IncreaseDecreaseInOtherOperatingLiabilities' use='optional' order='12.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayableTrade' xlink:label='us-gaap_IncreaseDecreaseInAccountsPayableTrade'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_IncreaseDecreaseInAccountsPayableTrade' use='optional' order='13.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities' xlink:label='us-gaap_IncreaseDecreaseInAccruedLiabilities'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_IncreaseDecreaseInAccruedLiabilities' use='optional' order='14.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings' xlink:label='us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings' use='optional' order='15.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable' xlink:label='us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable' use='optional' order='16.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets' xlink:label='us-gaap_IncreaseDecreaseInOtherOperatingAssets'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='us-gaap_IncreaseDecreaseInOtherOperatingAssets' use='optional' order='17.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect' xlink:label='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect' xlink:to='us-gaap_NetCashProvidedByUsedInOperatingActivities' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities' xlink:label='us-gaap_NetCashProvidedByUsedInInvestingActivities'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect' xlink:to='us-gaap_NetCashProvidedByUsedInInvestingActivities' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities' xlink:label='us-gaap_NetCashProvidedByUsedInFinancingActivities'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect' xlink:to='us-gaap_NetCashProvidedByUsedInFinancingActivities' use='optional' order='3.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment' xlink:label='us-gaap_PaymentsToAcquirePropertyPlantAndEquipment'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivities' xlink:to='us-gaap_PaymentsToAcquirePropertyPlantAndEquipment' use='optional' order='1.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireIntangibleAssets' xlink:label='us-gaap_PaymentsToAcquireIntangibleAssets'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivities' xlink:to='us-gaap_PaymentsToAcquireIntangibleAssets' use='optional' order='2.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireOtherInvestments' xlink:label='us-gaap_PaymentsToAcquireOtherInvestments'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivities' xlink:to='us-gaap_PaymentsToAcquireOtherInvestments' use='optional' order='3.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForProceedsFromOtherInvestingActivities' xlink:label='us-gaap_PaymentsForProceedsFromOtherInvestingActivities'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivities' xlink:to='us-gaap_PaymentsForProceedsFromOtherInvestingActivities' use='optional' order='4.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock' xlink:label='us-gaap_ProceedsFromIssuanceOfCommonStock'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInFinancingActivities' xlink:to='us-gaap_ProceedsFromIssuanceOfCommonStock' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock' xlink:label='us-gaap_PaymentsForRepurchaseOfCommonStock'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_NetCashProvidedByUsedInFinancingActivities' xlink:to='us-gaap_PaymentsForRepurchaseOfCommonStock' use='optional' order='2.0' weight='-1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:label='us-gaap_AccountsAndOtherReceivablesNetCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableGrossCurrent' xlink:label='us-gaap_AccountsReceivableGrossCurrent'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:to='us-gaap_AccountsReceivableGrossCurrent' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables' xlink:label='us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:to='us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables' use='optional' order='2.0' weight='-1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure3InventoryScheduleOfInventoryDetails"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet' xlink:label='us-gaap_InventoryNet'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryGross' xlink:label='us-gaap_InventoryGross'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_InventoryNet' xlink:to='us-gaap_InventoryGross' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryAdjustments' xlink:label='us-gaap_InventoryAdjustments'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_InventoryNet' xlink:to='us-gaap_InventoryAdjustments' use='optional' order='2.0' weight='-1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails">
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsGross' xlink:label='fil_CostsIncurredOnUncompletedContractsGross'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContracts' xlink:label='fil_CostsIncurredOnUncompletedContracts'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='fil_CostsIncurredOnUncompletedContractsGross' xlink:to='fil_CostsIncurredOnUncompletedContracts' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsEstimatedEarnings' xlink:label='fil_CostsIncurredOnUncompletedContractsEstimatedEarnings'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='fil_CostsIncurredOnUncompletedContractsGross' xlink:to='fil_CostsIncurredOnUncompletedContractsEstimatedEarnings' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsNet' xlink:label='fil_CostsIncurredOnUncompletedContractsNet'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='fil_CostsIncurredOnUncompletedContractsNet' xlink:to='fil_CostsIncurredOnUncompletedContractsGross' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsBillingsToDate' xlink:label='fil_CostsIncurredOnUncompletedContractsBillingsToDate'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='fil_CostsIncurredOnUncompletedContractsNet' xlink:to='fil_CostsIncurredOnUncompletedContractsBillingsToDate' use='optional' order='2.0' weight='-1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails">
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsNet' xlink:label='fil_CostsIncurredOnUncompletedContractsNet'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsAndEstimatedEarningsInExcessOfBillings' xlink:label='fil_CostsAndEstimatedEarningsInExcessOfBillings'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='fil_CostsIncurredOnUncompletedContractsNet' xlink:to='fil_CostsAndEstimatedEarningsInExcessOfBillings' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_BillingsInExcessOfCostsAndEstimatedEarnings' xlink:label='fil_BillingsInExcessOfCostsAndEstimatedEarnings'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='fil_CostsIncurredOnUncompletedContractsNet' xlink:to='fil_BillingsInExcessOfCostsAndEstimatedEarnings' use='optional' order='2.0' weight='1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails">
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_MaintenanceAndOtherInventoryNet' xlink:label='fil_MaintenanceAndOtherInventoryNet'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_MaintenanceAndOtherInventoryGross' xlink:label='fil_MaintenanceAndOtherInventoryGross'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='fil_MaintenanceAndOtherInventoryNet' xlink:to='fil_MaintenanceAndOtherInventoryGross' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_MaintenanceAndOtherInventoryAllowanceForObsolescence' xlink:label='fil_MaintenanceAndOtherInventoryAllowanceForObsolescence'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='fil_MaintenanceAndOtherInventoryNet' xlink:to='fil_MaintenanceAndOtherInventoryAllowanceForObsolescence' use='optional' order='2.0' weight='-1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet' xlink:label='us-gaap_PropertyPlantAndEquipmentNet'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentGross' xlink:label='us-gaap_PropertyPlantAndEquipmentGross'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_PropertyPlantAndEquipmentNet' xlink:to='us-gaap_PropertyPlantAndEquipmentGross' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment' xlink:label='us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_PropertyPlantAndEquipmentNet' xlink:to='us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment' use='optional' order='2.0' weight='-1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit' xlink:label='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentFederalTaxExpenseBenefit' xlink:label='us-gaap_CurrentFederalTaxExpenseBenefit'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit' xlink:to='us-gaap_CurrentFederalTaxExpenseBenefit' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit' xlink:label='us-gaap_CurrentStateAndLocalTaxExpenseBenefit'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit' xlink:to='us-gaap_CurrentStateAndLocalTaxExpenseBenefit' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit' xlink:label='us-gaap_IncomeTaxExpenseBenefit'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_IncomeTaxExpenseBenefit' xlink:to='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit' xlink:label='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_IncomeTaxExpenseBenefit' xlink:to='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit' xlink:label='us-gaap_DeferredFederalIncomeTaxExpenseBenefit'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit' xlink:to='us-gaap_DeferredFederalIncomeTaxExpenseBenefit' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit' xlink:label='us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit' xlink:to='us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit' use='optional' order='2.0' weight='1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit' xlink:label='us-gaap_IncomeTaxExpenseBenefit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate' xlink:label='us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_IncomeTaxExpenseBenefit' xlink:to='us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch' xlink:label='us-gaap_IncomeTaxReconciliationTaxCreditsResearch'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_IncomeTaxExpenseBenefit' xlink:to='us-gaap_IncomeTaxReconciliationTaxCreditsResearch' use='optional' order='2.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsForeign' xlink:label='us-gaap_IncomeTaxReconciliationTaxCreditsForeign'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_IncomeTaxExpenseBenefit' xlink:to='us-gaap_IncomeTaxReconciliationTaxCreditsForeign' use='optional' order='3.0' weight='-1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_StockOptionCosts' xlink:label='fil_StockOptionCosts'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_IncomeTaxExpenseBenefit' xlink:to='fil_StockOptionCosts' use='optional' order='4.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationOtherReconcilingItems' xlink:label='us-gaap_IncomeTaxReconciliationOtherReconcilingItems'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_IncomeTaxExpenseBenefit' xlink:to='us-gaap_IncomeTaxReconciliationOtherReconcilingItems' use='optional' order='5.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_OtherAdjustments' xlink:label='fil_OtherAdjustments'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_IncomeTaxExpenseBenefit' xlink:to='fil_OtherAdjustments' use='optional' order='6.0' weight='1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsGross' xlink:label='us-gaap_DeferredTaxAssetsGross'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AllowanceForDoubtfulReceivables' xlink:label='fil_AllowanceForDoubtfulReceivables'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredTaxAssetsGross' xlink:to='fil_AllowanceForDoubtfulReceivables' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_TaxInventoryAdjustment' xlink:label='fil_TaxInventoryAdjustment'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredTaxAssetsGross' xlink:to='fil_TaxInventoryAdjustment' use='optional' order='2.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AllowanceForObsoleteInventory' xlink:label='fil_AllowanceForObsoleteInventory'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredTaxAssetsGross' xlink:to='fil_AllowanceForObsoleteInventory' use='optional' order='3.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AccruedVacation' xlink:label='fil_AccruedVacation'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredTaxAssetsGross' xlink:to='fil_AccruedVacation' use='optional' order='4.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_WarrantyReserve' xlink:label='fil_WarrantyReserve'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredTaxAssetsGross' xlink:to='fil_WarrantyReserve' use='optional' order='5.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_RDCapitalization' xlink:label='fil_RDCapitalization'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredTaxAssetsGross' xlink:to='fil_RDCapitalization' use='optional' order='6.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_StockOptionsIssuedForServices' xlink:label='fil_StockOptionsIssuedForServices'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredTaxAssetsGross' xlink:to='fil_StockOptionsIssuedForServices' use='optional' order='7.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsNet' xlink:label='us-gaap_DeferredTaxAssetsNet'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredTaxAssetsNet' xlink:to='us-gaap_DeferredTaxAssetsGross' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_ExcessTaxDepreciation' xlink:label='fil_ExcessTaxDepreciation'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='us-gaap_DeferredTaxAssetsNet' xlink:to='fil_ExcessTaxDepreciation' use='optional' order='2.0' weight='-1.0'/>
	</link:calculationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails"/>
	<link:calculationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails">
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AverageCommonSharesOutstandingAssumingDilution' xlink:label='fil_AverageCommonSharesOutstandingAssumingDilution'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AverageCommonSharesOutstanding' xlink:label='fil_AverageCommonSharesOutstanding'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='fil_AverageCommonSharesOutstandingAssumingDilution' xlink:to='fil_AverageCommonSharesOutstanding' use='optional' order='1.0' weight='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CommonSharesIssuableUnderStockOptionPlans' xlink:label='fil_CommonSharesIssuableUnderStockOptionPlans'/>
		<link:calculationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/summation-item' xlink:from='fil_AverageCommonSharesOutstandingAssumingDilution' xlink:to='fil_CommonSharesIssuableUnderStockOptionPlans' use='optional' order='2.0' weight='1.0'/>
	</link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>9
<FILENAME>tayd-20250531_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version='1.0' encoding='iso-8859-1'?>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA3WEKVX]. www.edgarsuite.com -->
<link:linkbase xmlns="http://www.xbrl.org/2003/linkbase"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"
		xmlns:fil="http://taylordevices.com/20250531"
		xmlns:link="http://www.xbrl.org/2003/linkbase"
		xmlns:xlink="http://www.w3.org/1999/xlink"
		xmlns:xbrldt="http://xbrl.org/2005/xbrldt"
		xmlns:xbrli="http://www.xbrl.org/2003/instance">
	<link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all"/>
	<link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension"/>
	<link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default"/>
	<link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain"/>
	<link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_DocumentDocumentAndEntityInformation"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis' xlink:label='us-gaap_StatementClassOfStockAxis'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/hypercube-dimension' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementClassOfStockAxis' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain' xlink:label='us-gaap_ClassOfStockDomain'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-domain' xlink:from='us-gaap_StatementClassOfStockAxis' xlink:to='us-gaap_ClassOfStockDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain' xlink:label='us-gaap_ClassOfStockDomain_1'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-default' xlink:from='us-gaap_StatementClassOfStockAxis' xlink:to='us-gaap_ClassOfStockDomain_1' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonClassAMember' xlink:label='us-gaap_CommonClassAMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ClassOfStockDomain' xlink:to='us-gaap_CommonClassAMember' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesAPreferredStockMember' xlink:label='us-gaap_SeriesAPreferredStockMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ClassOfStockDomain' xlink:to='us-gaap_SeriesAPreferredStockMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/all' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StatementTable' order='0.5' xbrldt:closed='true' xbrldt:contextElement='segment' use='optional'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey' xlink:label='dei_EntityCentralIndexKey'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityCentralIndexKey' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate' xlink:label='dei_CurrentFiscalYearEndDate'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_CurrentFiscalYearEndDate' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType' xlink:label='dei_DocumentType'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentType' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentAnnualReport' xlink:label='dei_DocumentAnnualReport'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentAnnualReport' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate' xlink:label='dei_DocumentPeriodEndDate'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentPeriodEndDate' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport' xlink:label='dei_DocumentTransitionReport'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentTransitionReport' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber' xlink:label='dei_EntityFileNumber'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityFileNumber' use='optional' order='7.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName' xlink:label='dei_EntityRegistrantName'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityRegistrantName' use='optional' order='8.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode' xlink:label='dei_EntityIncorporationStateCountryCode'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityIncorporationStateCountryCode' use='optional' order='9.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber' xlink:label='dei_EntityTaxIdentificationNumber'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityTaxIdentificationNumber' use='optional' order='10.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1' xlink:label='dei_EntityAddressAddressLine1'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityAddressAddressLine1' use='optional' order='11.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown' xlink:label='dei_EntityAddressCityOrTown'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityAddressCityOrTown' use='optional' order='12.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince' xlink:label='dei_EntityAddressStateOrProvince'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityAddressStateOrProvince' use='optional' order='13.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode' xlink:label='dei_EntityAddressPostalZipCode'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityAddressPostalZipCode' use='optional' order='14.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressDescription' xlink:label='dei_EntityAddressAddressDescription'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityAddressAddressDescription' use='optional' order='15.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_PhoneFaxNumberDescription' xlink:label='dei_PhoneFaxNumberDescription'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_PhoneFaxNumberDescription' use='optional' order='16.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode' xlink:label='dei_CityAreaCode'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_CityAreaCode' use='optional' order='17.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber' xlink:label='dei_LocalPhoneNumber'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_LocalPhoneNumber' use='optional' order='18.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle' xlink:label='dei_Security12bTitle'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_Security12bTitle' use='optional' order='19.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol' xlink:label='dei_TradingSymbol'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_TradingSymbol' use='optional' order='20.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName' xlink:label='dei_SecurityExchangeName'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_SecurityExchangeName' use='optional' order='21.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityWellKnownSeasonedIssuer' xlink:label='dei_EntityWellKnownSeasonedIssuer'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityWellKnownSeasonedIssuer' use='optional' order='22.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityVoluntaryFilers' xlink:label='dei_EntityVoluntaryFilers'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityVoluntaryFilers' use='optional' order='23.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus' xlink:label='dei_EntityCurrentReportingStatus'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityCurrentReportingStatus' use='optional' order='24.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent' xlink:label='dei_EntityInteractiveDataCurrent'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityInteractiveDataCurrent' use='optional' order='25.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory' xlink:label='dei_EntityFilerCategory'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityFilerCategory' use='optional' order='26.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness' xlink:label='dei_EntitySmallBusiness'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntitySmallBusiness' use='optional' order='27.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany' xlink:label='dei_EntityEmergingGrowthCompany'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityEmergingGrowthCompany' use='optional' order='28.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_IcfrAuditorAttestationFlag' xlink:label='dei_IcfrAuditorAttestationFlag'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_IcfrAuditorAttestationFlag' use='optional' order='29.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFinStmtErrorCorrectionFlag' xlink:label='dei_DocumentFinStmtErrorCorrectionFlag'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentFinStmtErrorCorrectionFlag' use='optional' order='30.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany' xlink:label='dei_EntityShellCompany'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityShellCompany' use='optional' order='31.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityPublicFloat' xlink:label='dei_EntityPublicFloat'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityPublicFloat' use='optional' order='32.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding' xlink:label='dei_EntityCommonStockSharesOutstanding'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityCommonStockSharesOutstanding' use='optional' order='33.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag' xlink:label='dei_AmendmentFlag'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_AmendmentFlag' use='optional' order='34.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus' xlink:label='dei_DocumentFiscalYearFocus'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentFiscalYearFocus' use='optional' order='35.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus' xlink:label='dei_DocumentFiscalPeriodFocus'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentFiscalPeriodFocus' use='optional' order='36.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AuditorName' xlink:label='dei_AuditorName'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_AuditorName' use='optional' order='37.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AuditorFirmId' xlink:label='dei_AuditorFirmId'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_AuditorFirmId' use='optional' order='38.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AuditorLocation' xlink:label='dei_AuditorLocation'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_AuditorLocation' use='optional' order='39.0'/>
	</link:definitionLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedBalanceSheets"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedBalanceSheetsParenthetical"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedStatementsOfIncome"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedStatementsOfStockholdersEquity"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis' xlink:label='us-gaap_StatementEquityComponentsAxis'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/hypercube-dimension' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementEquityComponentsAxis' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain' xlink:label='us-gaap_EquityComponentDomain'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-domain' xlink:from='us-gaap_StatementEquityComponentsAxis' xlink:to='us-gaap_EquityComponentDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain' xlink:label='us-gaap_EquityComponentDomain_1'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-default' xlink:from='us-gaap_StatementEquityComponentsAxis' xlink:to='us-gaap_EquityComponentDomain_1' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember' xlink:label='us-gaap_CommonStockMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_EquityComponentDomain' xlink:to='us-gaap_CommonStockMember' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember' xlink:label='us-gaap_AdditionalPaidInCapitalMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_EquityComponentDomain' xlink:to='us-gaap_AdditionalPaidInCapitalMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember' xlink:label='us-gaap_RetainedEarningsMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_EquityComponentDomain' xlink:to='us-gaap_RetainedEarningsMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockCommonMember' xlink:label='us-gaap_TreasuryStockCommonMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_EquityComponentDomain' xlink:to='us-gaap_TreasuryStockCommonMember' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/all' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StatementTable' order='0.5' xbrldt:closed='true' xbrldt:contextElement='segment' use='optional'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity' xlink:label='us-gaap_StockholdersEquity'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StockholdersEquity' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan' xlink:label='us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan' xlink:label='us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition' xlink:label='us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss' xlink:label='us-gaap_NetIncomeLoss'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_NetIncomeLoss' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue' xlink:label='us-gaap_StockRepurchasedDuringPeriodValue'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StockRepurchasedDuringPeriodValue' use='optional' order='6.0'/>
	</link:definitionLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedStatementsOfCashFlows"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure2AccountsAndOtherReceivables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure3Inventory" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure3Inventory"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure3Inventory"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventory" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure5MaintenanceAndOtherInventory"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventory"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipment" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure6PropertyAndEquipment"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipment"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowings" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure7ShortTermBorrowings"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowings"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpenses" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure8AccruedExpenses"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpenses"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure9Sales" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure9Sales"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure9Sales"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxes" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxes"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxes"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShare" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure11EarningsPerCommonShare"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShare"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlan" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure12EmployeeStockPurchasePlan"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlan"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlans" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlans"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlans"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlan" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure14RetirementPlan"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlan"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure15FairValueOfFinancialInstruments" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure15FairValueOfFinancialInstruments"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure15FairValueOfFinancialInstruments"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformation" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure16CashFlowsInformation"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformation"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedings" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure17LegalProceedings"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedings"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure3InventoryScheduleOfInventoryTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure9SalesDisaggregationOfSalesRevenueTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis' xlink:label='srt_MajorCustomersAxis'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/hypercube-dimension' xlink:from='us-gaap_StatementTable' xlink:to='srt_MajorCustomersAxis' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain' xlink:label='srt_NameOfMajorCustomerDomain'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-domain' xlink:from='srt_MajorCustomersAxis' xlink:to='srt_NameOfMajorCustomerDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain' xlink:label='srt_NameOfMajorCustomerDomain_1'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-default' xlink:from='srt_MajorCustomersAxis' xlink:to='srt_NameOfMajorCustomerDomain_1' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CustomersMember' xlink:label='fil_CustomersMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='srt_NameOfMajorCustomerDomain' xlink:to='fil_CustomersMember' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CustomersRetentionMember' xlink:label='fil_CustomersRetentionMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='srt_NameOfMajorCustomerDomain' xlink:to='fil_CustomersRetentionMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/all' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StatementTable' order='0.5' xbrldt:closed='true' xbrldt:contextElement='segment' use='optional'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableGrossCurrent' xlink:label='us-gaap_AccountsReceivableGrossCurrent'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AccountsReceivableGrossCurrent' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables' xlink:label='us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:label='us-gaap_AccountsAndOtherReceivablesNetCurrent'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AccountsAndOtherReceivablesNetCurrent' use='optional' order='3.0'/>
	</link:definitionLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure3InventoryScheduleOfInventoryDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesInventoryAxis' xlink:label='us-gaap_PublicUtilitiesInventoryAxis'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/hypercube-dimension' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_PublicUtilitiesInventoryAxis' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesInventoryTypeDomain' xlink:label='us-gaap_PublicUtilitiesInventoryTypeDomain'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-domain' xlink:from='us-gaap_PublicUtilitiesInventoryAxis' xlink:to='us-gaap_PublicUtilitiesInventoryTypeDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesInventoryTypeDomain' xlink:label='us-gaap_PublicUtilitiesInventoryTypeDomain_1'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-default' xlink:from='us-gaap_PublicUtilitiesInventoryAxis' xlink:to='us-gaap_PublicUtilitiesInventoryTypeDomain_1' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesInventoryRawMaterialsMember' xlink:label='us-gaap_PublicUtilitiesInventoryRawMaterialsMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_PublicUtilitiesInventoryTypeDomain' xlink:to='us-gaap_PublicUtilitiesInventoryRawMaterialsMember' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_WorkInProcessMember' xlink:label='fil_WorkInProcessMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_PublicUtilitiesInventoryTypeDomain' xlink:to='fil_WorkInProcessMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_FinishedGoodsMember' xlink:label='fil_FinishedGoodsMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_PublicUtilitiesInventoryTypeDomain' xlink:to='fil_FinishedGoodsMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/all' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StatementTable' order='0.5' xbrldt:closed='true' xbrldt:contextElement='segment' use='optional'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryGross' xlink:label='us-gaap_InventoryGross'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_InventoryGross' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryAdjustments' xlink:label='us-gaap_InventoryAdjustments'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_InventoryAdjustments' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet' xlink:label='us-gaap_InventoryNet'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_InventoryNet' use='optional' order='3.0'/>
	</link:definitionLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure5MaintenanceAndOtherInventoryDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:label='us-gaap_PropertyPlantAndEquipmentByTypeAxis'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/hypercube-dimension' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_PropertyPlantAndEquipmentByTypeAxis' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:label='us-gaap_PropertyPlantAndEquipmentTypeDomain'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-domain' xlink:from='us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:to='us-gaap_PropertyPlantAndEquipmentTypeDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:label='us-gaap_PropertyPlantAndEquipmentTypeDomain_1'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-default' xlink:from='us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:to='us-gaap_PropertyPlantAndEquipmentTypeDomain_1' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LandMember' xlink:label='us-gaap_LandMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:to='us-gaap_LandMember' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BuildingImprovementsMember' xlink:label='us-gaap_BuildingImprovementsMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:to='us-gaap_BuildingImprovementsMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MachineryAndEquipmentMember' xlink:label='us-gaap_MachineryAndEquipmentMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:to='us-gaap_MachineryAndEquipmentMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FurnitureAndFixturesMember' xlink:label='us-gaap_FurnitureAndFixturesMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:to='us-gaap_FurnitureAndFixturesMember' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VehiclesMember' xlink:label='us-gaap_VehiclesMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:to='us-gaap_VehiclesMember' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LandImprovementsMember' xlink:label='us-gaap_LandImprovementsMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:to='us-gaap_LandImprovementsMember' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/all' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StatementTable' order='0.5' xbrldt:closed='true' xbrldt:contextElement='segment' use='optional'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentGross' xlink:label='us-gaap_PropertyPlantAndEquipmentGross'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_PropertyPlantAndEquipmentGross' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment' xlink:label='us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet' xlink:label='us-gaap_PropertyPlantAndEquipmentNet'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_PropertyPlantAndEquipmentNet' use='optional' order='3.0'/>
	</link:definitionLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure6PropertyAndEquipmentDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowingsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure7ShortTermBorrowingsDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowingsDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByLiabilityClassAxis' xlink:label='us-gaap_FairValueByLiabilityClassAxis'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/hypercube-dimension' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_FairValueByLiabilityClassAxis' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' xlink:label='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-domain' xlink:from='us-gaap_FairValueByLiabilityClassAxis' xlink:to='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' xlink:label='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_1'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-default' xlink:from='us-gaap_FairValueByLiabilityClassAxis' xlink:to='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_1' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CustomerDepositsMember' xlink:label='fil_CustomerDepositsMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' xlink:to='fil_CustomerDepositsMember' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_PersonnelCostsMember' xlink:label='fil_PersonnelCostsMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' xlink:to='fil_PersonnelCostsMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_OtherMember' xlink:label='fil_OtherMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' xlink:to='fil_OtherMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/all' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StatementTable' order='0.5' xbrldt:closed='true' xbrldt:contextElement='segment' use='optional'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesCurrent' xlink:label='us-gaap_AccruedLiabilitiesCurrent'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AccruedLiabilitiesCurrent' use='optional' order='1.0'/>
	</link:definitionLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis' xlink:label='us-gaap_StatementBusinessSegmentsAxis'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/hypercube-dimension' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementBusinessSegmentsAxis' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain' xlink:label='us-gaap_SegmentDomain'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-domain' xlink:from='us-gaap_StatementBusinessSegmentsAxis' xlink:to='us-gaap_SegmentDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain' xlink:label='us-gaap_SegmentDomain_1'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-default' xlink:from='us-gaap_StatementBusinessSegmentsAxis' xlink:to='us-gaap_SegmentDomain_1' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_StructuralMember' xlink:label='fil_StructuralMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_SegmentDomain' xlink:to='fil_StructuralMember' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AerospaceDefenseMember' xlink:label='fil_AerospaceDefenseMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_SegmentDomain' xlink:to='fil_AerospaceDefenseMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_IndustrialMember' xlink:label='fil_IndustrialMember'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_SegmentDomain' xlink:to='fil_IndustrialMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/all' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StatementTable' order='0.5' xbrldt:closed='true' xbrldt:contextElement='segment' use='optional'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues' xlink:label='us-gaap_Revenues'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_Revenues' use='optional' order='1.0'/>
	</link:definitionLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlanDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure12EmployeeStockPurchasePlanDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlanDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:label='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/hypercube-dimension' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:label='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-domain' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:label='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_1'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/dimension-default' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_1' use='optional' order='1.0' xbrldt:contextElement='segment'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N90110001Member' xlink:label='fil_N90110001Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N90110001Member' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N100111001Member' xlink:label='fil_N100111001Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N100111001Member' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N110112001Member' xlink:label='fil_N110112001Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N110112001Member' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N120113001Member' xlink:label='fil_N120113001Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N120113001Member' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N130114001Member' xlink:label='fil_N130114001Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N130114001Member' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N160117001Member' xlink:label='fil_N160117001Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N160117001Member' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N190120001Member' xlink:label='fil_N190120001Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N190120001Member' use='optional' order='7.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N20012100Member' xlink:label='fil_N20012100Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N20012100Member' use='optional' order='8.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N30013100Member' xlink:label='fil_N30013100Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N30013100Member' use='optional' order='9.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N43014400Member' xlink:label='fil_N43014400Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N43014400Member' use='optional' order='10.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N46014700Member' xlink:label='fil_N46014700Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N46014700Member' use='optional' order='11.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N9014700Member' xlink:label='fil_N9014700Member'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='fil_N9014700Member' use='optional' order='12.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/all' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StatementTable' order='0.5' xbrldt:closed='true' xbrldt:contextElement='segment' use='optional'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions' xlink:label='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2' xlink:label='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1' xlink:label='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1'/>
		<link:definitionArc xlink:type='arc' xlink:arcrole='http://xbrl.org/int/dim/arcrole/domain-member' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1' use='optional' order='3.0'/>
	</link:definitionLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlanDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure14RetirementPlanDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlanDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails"/>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure17LegalProceedingsDetails"/>
	<link:definitionLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails"/>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>10
<FILENAME>tayd-20250531_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABELS LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version='1.0' encoding='iso-8859-1'?>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA3WEKVX]. www.edgarsuite.com -->
<link:linkbase xmlns="http://www.xbrl.org/2003/linkbase"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"
		xmlns:fil="http://taylordevices.com/20250531"
		xmlns:link="http://www.xbrl.org/2003/linkbase"
		xmlns:xlink="http://www.w3.org/1999/xlink"
		xmlns:xbrldt="http://xbrl.org/2005/xbrldt"
		xmlns:xbrli="http://www.xbrl.org/2003/instance">
	<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"/>
	<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"/>
	<roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel"/>
	<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"/>
	<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"/>
	<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"/>
	<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:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_LossContingencyInestimableLoss2' xlink:label='fil_LossContingencyInestimableLoss2'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_LossContingencyInestimableLoss2' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Loss Contingency, Inestimable Loss</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_LossContingencyInestimableLoss2' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the description of Loss Contingency, Inestimable Loss, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_LossContingencyInestimableLoss2' xlink:to='lab_fil_LossContingencyInestimableLoss2'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyAllegations' xlink:label='us-gaap_LossContingencyAllegations'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LossContingencyAllegations' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Loss Contingency, Allegations</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LossContingencyAllegations' xlink:to='lab_us-gaap_LossContingencyAllegations'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyNameOfPlaintiff' xlink:label='us-gaap_LossContingencyNameOfPlaintiff'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LossContingencyNameOfPlaintiff' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Loss Contingency, Name of Plaintiff</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LossContingencyNameOfPlaintiff' xlink:to='lab_us-gaap_LossContingencyNameOfPlaintiff'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CommonSharesIssuedToEmployees' xlink:label='fil_CommonSharesIssuedToEmployees'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CommonSharesIssuedToEmployees' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Common shares issued to employees</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CommonSharesIssuedToEmployees' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Common shares issued to employees (number of shares), during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CommonSharesIssuedToEmployees' xlink:to='lab_fil_CommonSharesIssuedToEmployees'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit' xlink:label='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Deferred Federal, State and Local, Tax Expense (Benefit)</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Deferred Federal, State and Local, Tax Expense (Benefit)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit' xlink:to='lab_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherCommitment' xlink:label='us-gaap_OtherCommitment'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_OtherCommitment' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Commitments to make capital expenditures</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_OtherCommitment' xlink:to='lab_us-gaap_OtherCommitment'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_NumberOfProjectsInProgress' xlink:label='fil_NumberOfProjectsInProgress'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_NumberOfProjectsInProgress' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Number of Projects in progress</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_NumberOfProjectsInProgress' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Number of Projects in progress, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_NumberOfProjectsInProgress' xlink:to='lab_fil_NumberOfProjectsInProgress'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_FinishedGoodsMember' xlink:label='fil_FinishedGoodsMember'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_FinishedGoodsMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Finished goods</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_FinishedGoodsMember' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Finished goods, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_FinishedGoodsMember' xlink:to='lab_fil_FinishedGoodsMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesInventoryRawMaterialsMember' xlink:label='us-gaap_PublicUtilitiesInventoryRawMaterialsMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PublicUtilitiesInventoryRawMaterialsMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Raw Materials</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PublicUtilitiesInventoryRawMaterialsMember' xlink:to='lab_us-gaap_PublicUtilitiesInventoryRawMaterialsMember'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_SchduleOfStatusOfProjectsInProgressTextBlock' xlink:label='fil_SchduleOfStatusOfProjectsInProgressTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_SchduleOfStatusOfProjectsInProgressTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schdule of Status of Projects in progress</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_SchduleOfStatusOfProjectsInProgressTextBlock' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the textual narrative disclosure of Schdule of Status of Projects in progress, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_SchduleOfStatusOfProjectsInProgressTextBlock' xlink:to='lab_fil_SchduleOfStatusOfProjectsInProgressTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsPolicyPolicyTextBlock' xlink:label='us-gaap_SubsequentEventsPolicyPolicyTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_SubsequentEventsPolicyPolicyTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Subsequent Events:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_SubsequentEventsPolicyPolicyTextBlock' xlink:to='lab_us-gaap_SubsequentEventsPolicyPolicyTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock' xlink:label='us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>12. Employee Stock Purchase Plan:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock' xlink:to='lab_us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock' xlink:label='us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>2. Accounts and Other Receivables:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock' xlink:to='lab_us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest' xlink:label='us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Income before provision for income taxes</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Income before provision for income taxes</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest' xlink:to='lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesIssued' xlink:label='us-gaap_CommonStockSharesIssued'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CommonStockSharesIssued' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Common Stock, Shares, Issued</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CommonStockSharesIssued' xlink:to='lab_us-gaap_CommonStockSharesIssued'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity' xlink:label='us-gaap_StockholdersEquity'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockholdersEquity' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Total stockholders&apos; equity</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockholdersEquity' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Total stockholders&apos; equity</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockholdersEquity' xlink:role='http://www.xbrl.org/2003/role/periodStartLabel' xml:lang='en-US'>Equity, Attributable to Parent, Beginning Balance</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockholdersEquity' xlink:role='http://www.xbrl.org/2003/role/periodEndLabel' xml:lang='en-US'>Equity, Attributable to Parent, Ending Balance</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StockholdersEquity' xlink:to='lab_us-gaap_StockholdersEquity'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesAPreferredStockMember' xlink:label='us-gaap_SeriesAPreferredStockMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_SeriesAPreferredStockMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Series A Preferred Stock</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_SeriesAPreferredStockMember' xlink:to='lab_us-gaap_SeriesAPreferredStockMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestPaid' xlink:label='us-gaap_InterestPaid'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_InterestPaid' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Interest paid</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_InterestPaid' xlink:to='lab_us-gaap_InterestPaid'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N160117001Member' xlink:label='fil_N160117001Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N160117001Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$16.01-$17.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N160117001Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $16.01-$17.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N160117001Member' xlink:to='lab_fil_N160117001Member'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:label='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Exercise Price Range</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:to='lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsGross' xlink:label='us-gaap_DeferredTaxAssetsGross'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredTaxAssetsGross' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Deferred Tax Assets, Gross</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredTaxAssetsGross' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Deferred Tax Assets, Gross</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DeferredTaxAssetsGross' xlink:to='lab_us-gaap_DeferredTaxAssetsGross'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_StockOptionsIssuedForServices' xlink:label='fil_StockOptionsIssuedForServices'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_StockOptionsIssuedForServices' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Stock options issued for services {2}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_StockOptionsIssuedForServices' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Stock options issued for services</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_StockOptionsIssuedForServices' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Stock options issued for services, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_StockOptionsIssuedForServices' xlink:to='lab_fil_StockOptionsIssuedForServices'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AllowanceForObsoleteInventory' xlink:label='fil_AllowanceForObsoleteInventory'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_AllowanceForObsoleteInventory' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Allowance for obsolete inventory</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_AllowanceForObsoleteInventory' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Allowance for obsolete inventory, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_AllowanceForObsoleteInventory' xlink:to='lab_fil_AllowanceForObsoleteInventory'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsGrossAbstract' xlink:label='us-gaap_DeferredTaxAssetsGrossAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredTaxAssetsGrossAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Deferred tax assets</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DeferredTaxAssetsGrossAbstract' xlink:to='lab_us-gaap_DeferredTaxAssetsGrossAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_PercentageOfTotalValueInvoicedToCustomer' xlink:label='fil_PercentageOfTotalValueInvoicedToCustomer'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_PercentageOfTotalValueInvoicedToCustomer' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Percentage of total value invoiced to customer</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_PercentageOfTotalValueInvoicedToCustomer' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the percentage value of Percentage of total value invoiced to customer, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_PercentageOfTotalValueInvoicedToCustomer' xlink:to='lab_fil_PercentageOfTotalValueInvoicedToCustomer'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareTextBlock' xlink:label='us-gaap_EarningsPerShareTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_EarningsPerShareTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>11. Earnings Per Common Share:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_EarningsPerShareTextBlock' xlink:to='lab_us-gaap_EarningsPerShareTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DisclosureTextBlockAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Notes</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='lab_us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition' xlink:label='us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Stock options issued for services</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition' xlink:to='lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockCommonMember' xlink:label='us-gaap_TreasuryStockCommonMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_TreasuryStockCommonMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Treasury Stock, Common</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_TreasuryStockCommonMember' xlink:to='lab_us-gaap_TreasuryStockCommonMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember' xlink:label='us-gaap_AdditionalPaidInCapitalMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AdditionalPaidInCapitalMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Additional Paid-in Capital</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AdditionalPaidInCapitalMember' xlink:to='lab_us-gaap_AdditionalPaidInCapitalMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold' xlink:label='us-gaap_CostOfGoodsAndServicesSold'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CostOfGoodsAndServicesSold' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Cost of goods sold</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CostOfGoodsAndServicesSold' xlink:to='lab_us-gaap_CostOfGoodsAndServicesSold'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherInventoryNoncurrent' xlink:label='us-gaap_OtherInventoryNoncurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_OtherInventoryNoncurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Maintenance and other inventory, net (Note 5)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_OtherInventoryNoncurrent' xlink:to='lab_us-gaap_OtherInventoryNoncurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFinStmtErrorCorrectionFlag' xlink:label='dei_DocumentFinStmtErrorCorrectionFlag'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_DocumentFinStmtErrorCorrectionFlag' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Document Financial Statement Error Correction</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_DocumentFinStmtErrorCorrectionFlag' xlink:to='lab_dei_DocumentFinStmtErrorCorrectionFlag'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain' xlink:label='us-gaap_ClassOfStockDomain'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ClassOfStockDomain' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Class of Stock</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ClassOfStockDomain' xlink:to='lab_us-gaap_ClassOfStockDomain'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CommonSharesIssuableUnderStockOptionPlans' xlink:label='fil_CommonSharesIssuableUnderStockOptionPlans'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CommonSharesIssuableUnderStockOptionPlans' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Common shares issuable under stock option plans</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CommonSharesIssuableUnderStockOptionPlans' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Common shares issuable under stock option plans (number of shares), during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CommonSharesIssuableUnderStockOptionPlans' xlink:to='lab_fil_CommonSharesIssuableUnderStockOptionPlans'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_RDCapitalization' xlink:label='fil_RDCapitalization'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_RDCapitalization' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>R&amp;D capitalization</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_RDCapitalization' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of R&amp;D capitalization, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_RDCapitalization' xlink:to='lab_fil_RDCapitalization'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:label='us-gaap_PropertyPlantAndEquipmentByTypeAxis'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Long-Lived Tangible Asset [Axis]</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:to='lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock' xlink:label='us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Deferred Tax Assets and Liabilities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock' xlink:to='lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresTextBlock' xlink:label='us-gaap_FairValueDisclosuresTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_FairValueDisclosuresTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>15. Fair Value of Financial Instruments:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_FairValueDisclosuresTextBlock' xlink:to='lab_us-gaap_FairValueDisclosuresTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock' xlink:label='us-gaap_RevenueFromContractWithCustomerTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_RevenueFromContractWithCustomerTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>9. Sales:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_RevenueFromContractWithCustomerTextBlock' xlink:to='lab_us-gaap_RevenueFromContractWithCustomerTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SignificantAccountingPoliciesTextBlock' xlink:label='us-gaap_SignificantAccountingPoliciesTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_SignificantAccountingPoliciesTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>1. Summary of Significant Accounting Policies:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_SignificantAccountingPoliciesTextBlock' xlink:to='lab_us-gaap_SignificantAccountingPoliciesTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents' xlink:label='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Cash and cash equivalents - beginning</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents' xlink:role='http://www.xbrl.org/2003/role/periodStartLabel' xml:lang='en-US'>Cash and cash equivalents - beginning</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents' xlink:role='http://www.xbrl.org/2003/role/periodEndLabel' xml:lang='en-US'>Cash and cash equivalents - ending</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents' xlink:to='lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities' xlink:label='us-gaap_NetCashProvidedByUsedInInvestingActivities'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetCashProvidedByUsedInInvestingActivities' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Net investing activities</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetCashProvidedByUsedInInvestingActivities' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Net investing activities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivities' xlink:to='lab_us-gaap_NetCashProvidedByUsedInInvestingActivities'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan' xlink:label='us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Issuance of shares for employee stock purchase plan</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan' xlink:to='lab_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain' xlink:label='us-gaap_EquityComponentDomain'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_EquityComponentDomain' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Equity Component</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_EquityComponentDomain' xlink:to='lab_us-gaap_EquityComponentDomain'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfStockholdersEquityAbstract' xlink:label='us-gaap_StatementOfStockholdersEquityAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementOfStockholdersEquityAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Details {3}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementOfStockholdersEquityAbstract' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Details</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StatementOfStockholdersEquityAbstract' xlink:to='lab_us-gaap_StatementOfStockholdersEquityAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:label='us-gaap_AccountsAndOtherReceivablesNetCurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accounts and other receivables, net (Note 2)</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Accounts and other receivables, net (Note 2)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:to='lab_us-gaap_AccountsAndOtherReceivablesNetCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_IcfrAuditorAttestationFlag' xlink:label='dei_IcfrAuditorAttestationFlag'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_IcfrAuditorAttestationFlag' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>ICFR Auditor Attestation Flag</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_IcfrAuditorAttestationFlag' xlink:to='lab_dei_IcfrAuditorAttestationFlag'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N130114001Member' xlink:label='fil_N130114001Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N130114001Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$13.01-$14.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N130114001Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $13.01-$14.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N130114001Member' xlink:to='lab_fil_N130114001Member'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1' xlink:label='us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Expected life in years</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1' xlink:to='lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AerospaceDefenseMember' xlink:label='fil_AerospaceDefenseMember'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_AerospaceDefenseMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Aerospace / Defense</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_AerospaceDefenseMember' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Aerospace / Defense, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_AerospaceDefenseMember' xlink:to='lab_fil_AerospaceDefenseMember'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CustomerDepositsMember' xlink:label='fil_CustomerDepositsMember'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CustomerDepositsMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Customer deposits</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CustomerDepositsMember' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Customer deposits, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CustomerDepositsMember' xlink:to='lab_fil_CustomerDepositsMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityAverageOutstandingAmount' xlink:label='us-gaap_LineOfCreditFacilityAverageOutstandingAmount'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LineOfCreditFacilityAverageOutstandingAmount' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Line of Credit Facility, Average Outstanding Amount</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LineOfCreditFacilityAverageOutstandingAmount' xlink:to='lab_us-gaap_LineOfCreditFacilityAverageOutstandingAmount'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LandMember' xlink:label='us-gaap_LandMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LandMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Land {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LandMember' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Land</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LandMember' xlink:to='lab_us-gaap_LandMember'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsGross' xlink:label='fil_CostsIncurredOnUncompletedContractsGross'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContractsGross' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Costs incurred on uncompleted contracts, Gross</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContractsGross' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Costs incurred on uncompleted contracts, Gross</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContractsGross' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Costs incurred on uncompleted contracts, Gross, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CostsIncurredOnUncompletedContractsGross' xlink:to='lab_fil_CostsIncurredOnUncompletedContractsGross'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CustomersRetentionMember' xlink:label='fil_CustomersRetentionMember'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CustomersRetentionMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Customers - retention</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CustomersRetentionMember' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Customers - retention, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CustomersRetentionMember' xlink:to='lab_fil_CustomersRetentionMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryDisclosureTextBlock' xlink:label='us-gaap_InventoryDisclosureTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_InventoryDisclosureTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>3. Inventory:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_InventoryDisclosureTextBlock' xlink:to='lab_us-gaap_InventoryDisclosureTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect' xlink:label='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Net change in cash and cash equivalents</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Net change in cash and cash equivalents</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect' xlink:to='lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockOptionPlanExpense' xlink:label='us-gaap_StockOptionPlanExpense'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockOptionPlanExpense' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Stock options issued for services {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockOptionPlanExpense' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Stock options issued for services</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StockOptionPlanExpense' xlink:to='lab_us-gaap_StockOptionPlanExpense'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan' xlink:label='us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Issuance of shares for employee stock option plan</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan' xlink:to='lab_us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit' xlink:label='us-gaap_IncomeTaxExpenseBenefit'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Provision for income taxes (Note 10)</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Provision for income taxes (Note 10)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeTaxExpenseBenefit' xlink:to='lab_us-gaap_IncomeTaxExpenseBenefit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms' xlink:label='us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Costs and estimated earnings in excess of billings (Note 4)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms' xlink:to='lab_us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate' xlink:label='dei_CurrentFiscalYearEndDate'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_CurrentFiscalYearEndDate' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Fiscal Year End</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_CurrentFiscalYearEndDate' xlink:to='lab_dei_CurrentFiscalYearEndDate'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice' xlink:label='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number, Beginning Balance</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber' xlink:role='http://www.xbrl.org/2003/role/periodStartLabel' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number, Beginning Balance</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber' xlink:role='http://www.xbrl.org/2003/role/periodEndLabel' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number, Ending Balance</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Risk-free interest rate</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxLiabilitiesAbstract' xlink:label='us-gaap_DeferredTaxLiabilitiesAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredTaxLiabilitiesAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Deferred tax liabilities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DeferredTaxLiabilitiesAbstract' xlink:to='lab_us-gaap_DeferredTaxLiabilitiesAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit' xlink:label='us-gaap_DeferredFederalIncomeTaxExpenseBenefit'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Federal {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Federal</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DeferredFederalIncomeTaxExpenseBenefit' xlink:to='lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' xlink:label='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Fair Value by Liability Class</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' xlink:to='lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_OutstandingChecks' xlink:label='fil_OutstandingChecks'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_OutstandingChecks' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Outstanding checks</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_OutstandingChecks' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Outstanding checks, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_OutstandingChecks' xlink:to='lab_fil_OutstandingChecks'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentGross' xlink:label='us-gaap_PropertyPlantAndEquipmentGross'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PropertyPlantAndEquipmentGross' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Property, Plant and Equipment, Gross</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PropertyPlantAndEquipmentGross' xlink:to='lab_us-gaap_PropertyPlantAndEquipmentGross'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContracts' xlink:label='fil_CostsIncurredOnUncompletedContracts'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContracts' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Costs incurred on uncompleted contracts</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContracts' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Costs incurred on uncompleted contracts, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CostsIncurredOnUncompletedContracts' xlink:to='lab_fil_CostsIncurredOnUncompletedContracts'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock' xlink:label='us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Cash Value of Life Insurance:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock' xlink:to='lab_us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LegalMattersAndContingenciesTextBlock' xlink:label='us-gaap_LegalMattersAndContingenciesTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LegalMattersAndContingenciesTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>17. Legal Proceedings:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LegalMattersAndContingenciesTextBlock' xlink:to='lab_us-gaap_LegalMattersAndContingenciesTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureTextBlock' xlink:label='us-gaap_IncomeTaxDisclosureTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxDisclosureTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>10. Income Taxes:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeTaxDisclosureTextBlock' xlink:to='lab_us-gaap_IncomeTaxDisclosureTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy' xlink:label='us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>5. Maintenance and Other Inventory:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy' xlink:to='lab_us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GainLossOnCondemnation' xlink:label='us-gaap_GainLossOnCondemnation'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_GainLossOnCondemnation' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Provision for inventory obsolescence</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_GainLossOnCondemnation' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Provision for inventory obsolescence</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_GainLossOnCondemnation' xlink:to='lab_us-gaap_GainLossOnCondemnation'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss' xlink:label='us-gaap_NetIncomeLoss'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetIncomeLoss' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Net income</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetIncomeLoss' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Net income</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NetIncomeLoss' xlink:to='lab_us-gaap_NetIncomeLoss'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedIncomeTaxes' xlink:label='us-gaap_AccruedIncomeTaxes'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AccruedIncomeTaxes' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accrued income taxes</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AccruedIncomeTaxes' xlink:to='lab_us-gaap_AccruedIncomeTaxes'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent' xlink:label='us-gaap_OtherAssetsMiscellaneousNoncurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_OtherAssetsMiscellaneousNoncurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Cash value of life insurance, net</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_OtherAssetsMiscellaneousNoncurrent' xlink:to='lab_us-gaap_OtherAssetsMiscellaneousNoncurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus' xlink:label='dei_DocumentFiscalYearFocus'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_DocumentFiscalYearFocus' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Document Fiscal Year Focus</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_DocumentFiscalYearFocus' xlink:to='lab_dei_DocumentFiscalYearFocus'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany' xlink:label='dei_EntityShellCompany'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityShellCompany' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Shell Company</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityShellCompany' xlink:to='lab_dei_EntityShellCompany'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber' xlink:label='dei_LocalPhoneNumber'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_LocalPhoneNumber' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Local Phone Number</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_LocalPhoneNumber' xlink:to='lab_dei_LocalPhoneNumber'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName' xlink:label='dei_EntityRegistrantName'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityRegistrantName' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Registrant Name</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityRegistrantName' xlink:to='lab_dei_EntityRegistrantName'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation' xlink:label='us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Loss Contingency, Parties Jointly and Severally Liable in Litigation</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation' xlink:to='lab_us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxesPaidNet' xlink:label='us-gaap_IncomeTaxesPaidNet'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxesPaidNet' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Income taxes paid</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeTaxesPaidNet' xlink:to='lab_us-gaap_IncomeTaxesPaidNet'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_SharesReservedForFurtherIssue' xlink:label='fil_SharesReservedForFurtherIssue'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_SharesReservedForFurtherIssue' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Shares reserved for further issue</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_SharesReservedForFurtherIssue' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Shares reserved for further issue (number of shares), as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_SharesReservedForFurtherIssue' xlink:to='lab_fil_SharesReservedForFurtherIssue'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_OtherAdjustments' xlink:label='fil_OtherAdjustments'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_OtherAdjustments' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Other Adjustments</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_OtherAdjustments' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Other Adjustments, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_OtherAdjustments' xlink:to='lab_fil_OtherAdjustments'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationDepletionAndAmortization' xlink:label='us-gaap_DepreciationDepletionAndAmortization'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DepreciationDepletionAndAmortization' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Depreciation, Depletion and Amortization</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DepreciationDepletionAndAmortization' xlink:to='lab_us-gaap_DepreciationDepletionAndAmortization'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_MaintenanceAndOtherInventoryNet' xlink:label='fil_MaintenanceAndOtherInventoryNet'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_MaintenanceAndOtherInventoryNet' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Maintenance and other inventory, Net</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_MaintenanceAndOtherInventoryNet' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Maintenance and other inventory, Net</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_MaintenanceAndOtherInventoryNet' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Maintenance and other inventory, Net, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_MaintenanceAndOtherInventoryNet' xlink:to='lab_fil_MaintenanceAndOtherInventoryNet'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AggregatePercentComplete' xlink:label='fil_AggregatePercentComplete'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_AggregatePercentComplete' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Aggregate percent complete</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_AggregatePercentComplete' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the percentage value of Aggregate percent complete, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_AggregatePercentComplete' xlink:to='lab_fil_AggregatePercentComplete'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesInventoryAxis' xlink:label='us-gaap_PublicUtilitiesInventoryAxis'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PublicUtilitiesInventoryAxis' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Inventory [Axis]</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PublicUtilitiesInventoryAxis' xlink:to='lab_us-gaap_PublicUtilitiesInventoryAxis'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock' xlink:label='us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Cash Flow, Supplemental Disclosures</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock' xlink:to='lab_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PolicyTextBlockAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Policies</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='lab_us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock' xlink:label='us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>14. Retirement Plan:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock' xlink:to='lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTextBlock' xlink:label='us-gaap_ShortTermDebtTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShortTermDebtTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>7. Short-Term Borrowings:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShortTermDebtTextBlock' xlink:to='lab_us-gaap_ShortTermDebtTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock' xlink:label='us-gaap_ProceedsFromIssuanceOfCommonStock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ProceedsFromIssuanceOfCommonStock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Proceeds from issuance of common stock</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ProceedsFromIssuanceOfCommonStock' xlink:to='lab_us-gaap_ProceedsFromIssuanceOfCommonStock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:label='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Changes in other assets and liabilities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BillingsInExcessOfCostCurrent' xlink:label='us-gaap_BillingsInExcessOfCostCurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_BillingsInExcessOfCostCurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Billings in excess of costs and estimated earnings (Note 4)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_BillingsInExcessOfCostCurrent' xlink:to='lab_us-gaap_BillingsInExcessOfCostCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill' xlink:label='us-gaap_IntangibleAssetsNetExcludingGoodwill'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IntangibleAssetsNetExcludingGoodwill' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Patents, net</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IntangibleAssetsNetExcludingGoodwill' xlink:to='lab_us-gaap_IntangibleAssetsNetExcludingGoodwill'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet' xlink:label='us-gaap_PropertyPlantAndEquipmentNet'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PropertyPlantAndEquipmentNet' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Property and equipment, net (Note 6)</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PropertyPlantAndEquipmentNet' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Property and equipment, net (Note 6)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PropertyPlantAndEquipmentNet' xlink:to='lab_us-gaap_PropertyPlantAndEquipmentNet'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract' xlink:label='us-gaap_StatementOfFinancialPositionAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementOfFinancialPositionAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Details {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementOfFinancialPositionAbstract' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Details</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementOfFinancialPositionAbstract' xlink:role='http://www.xbrl.org/2003/role/verboseLabel' xml:lang='en-US'>Consolidated Balance Sheets - Parenthetical</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StatementOfFinancialPositionAbstract' xlink:to='lab_us-gaap_StatementOfFinancialPositionAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AuditorName' xlink:label='dei_AuditorName'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_AuditorName' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Auditor Name</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_AuditorName' xlink:to='lab_dei_AuditorName'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressDescription' xlink:label='dei_EntityAddressAddressDescription'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityAddressAddressDescription' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Address, Address Description</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityAddressAddressDescription' xlink:to='lab_dei_EntityAddressAddressDescription'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey' xlink:label='dei_EntityCentralIndexKey'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityCentralIndexKey' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Registrant CIK</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityCentralIndexKey' xlink:to='lab_dei_EntityCentralIndexKey'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2' xlink:label='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Weighted Average Remaining Years of Contractual Life</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2' xlink:to='lab_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:label='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Exercise Price Range [Axis]</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_ExcessTaxDepreciation' xlink:label='fil_ExcessTaxDepreciation'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_ExcessTaxDepreciation' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Excess tax depreciation</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_ExcessTaxDepreciation' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Excess tax depreciation</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_ExcessTaxDepreciation' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Excess tax depreciation, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_ExcessTaxDepreciation' xlink:to='lab_fil_ExcessTaxDepreciation'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch' xlink:label='us-gaap_IncomeTaxReconciliationTaxCreditsResearch'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Research tax credits</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Research tax credits</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeTaxReconciliationTaxCreditsResearch' xlink:to='lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:label='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Current tax provision</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:to='lab_us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MachineryAndEquipmentMember' xlink:label='us-gaap_MachineryAndEquipmentMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_MachineryAndEquipmentMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Machinery and Equipment</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_MachineryAndEquipmentMember' xlink:to='lab_us-gaap_MachineryAndEquipmentMember'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsAndEstimatedEarningsInExcessOfBillings' xlink:label='fil_CostsAndEstimatedEarningsInExcessOfBillings'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsAndEstimatedEarningsInExcessOfBillings' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Costs and estimated earnings in excess of billings {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsAndEstimatedEarningsInExcessOfBillings' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Costs and estimated earnings in excess of billings</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsAndEstimatedEarningsInExcessOfBillings' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Costs and estimated earnings in excess of billings, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CostsAndEstimatedEarningsInExcessOfBillings' xlink:to='lab_fil_CostsAndEstimatedEarningsInExcessOfBillings'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables' xlink:label='us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Less allowance for estimated credit losses</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables' xlink:to='lab_us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock' xlink:label='us-gaap_PropertyPlantAndEquipmentTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PropertyPlantAndEquipmentTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Property, Plant and Equipment</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PropertyPlantAndEquipmentTextBlock' xlink:to='lab_us-gaap_PropertyPlantAndEquipmentTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRecognitionPolicyTextBlock' xlink:label='us-gaap_RevenueRecognitionPolicyTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_RevenueRecognitionPolicyTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Revenue Recognition:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_RevenueRecognitionPolicyTextBlock' xlink:to='lab_us-gaap_RevenueRecognitionPolicyTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy' xlink:label='us-gaap_TradeAndOtherAccountsReceivablePolicy'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_TradeAndOtherAccountsReceivablePolicy' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accounts and Other Receivables:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_TradeAndOtherAccountsReceivablePolicy' xlink:to='lab_us-gaap_TradeAndOtherAccountsReceivablePolicy'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock' xlink:label='us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>6. Property and Equipment:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock' xlink:to='lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities' xlink:label='us-gaap_NetCashProvidedByUsedInFinancingActivities'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetCashProvidedByUsedInFinancingActivities' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Net financing activities</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetCashProvidedByUsedInFinancingActivities' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Net financing activities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NetCashProvidedByUsedInFinancingActivities' xlink:to='lab_us-gaap_NetCashProvidedByUsedInFinancingActivities'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayableTrade' xlink:label='us-gaap_IncreaseDecreaseInAccountsPayableTrade'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInAccountsPayableTrade' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accounts payable {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInAccountsPayableTrade' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Accounts payable</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInAccountsPayableTrade' xlink:to='lab_us-gaap_IncreaseDecreaseInAccountsPayableTrade'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense' xlink:label='us-gaap_IncreaseDecreaseInPrepaidExpense'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInPrepaidExpense' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Prepaid expenses {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInPrepaidExpense' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Prepaid expenses</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInPrepaidExpense' xlink:to='lab_us-gaap_IncreaseDecreaseInPrepaidExpense'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract' xlink:label='us-gaap_IncomeStatementAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeStatementAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Details {2}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeStatementAbstract' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Details</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='lab_us-gaap_IncomeStatementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding' xlink:label='us-gaap_CommonStockSharesOutstanding'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CommonStockSharesOutstanding' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Common Stock, Shares, Outstanding</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CommonStockSharesOutstanding' xlink:to='lab_us-gaap_CommonStockSharesOutstanding'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent' xlink:label='us-gaap_OtherAssetsNoncurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_OtherAssetsNoncurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Other assets</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_OtherAssetsNoncurrent' xlink:to='lab_us-gaap_OtherAssetsNoncurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseCurrent' xlink:label='us-gaap_PrepaidExpenseCurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PrepaidExpenseCurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Prepaid expenses</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PrepaidExpenseCurrent' xlink:to='lab_us-gaap_PrepaidExpenseCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus' xlink:label='dei_DocumentFiscalPeriodFocus'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_DocumentFiscalPeriodFocus' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Document Fiscal Period Focus</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_DocumentFiscalPeriodFocus' xlink:to='lab_dei_DocumentFiscalPeriodFocus'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_PhoneFaxNumberDescription' xlink:label='dei_PhoneFaxNumberDescription'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_PhoneFaxNumberDescription' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Phone Fax Number Description</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_PhoneFaxNumberDescription' xlink:to='lab_dei_PhoneFaxNumberDescription'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince' xlink:label='dei_EntityAddressStateOrProvince'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityAddressStateOrProvince' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Address, State or Province</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityAddressStateOrProvince' xlink:to='lab_dei_EntityAddressStateOrProvince'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1' xlink:label='dei_EntityAddressAddressLine1'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityAddressAddressLine1' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Address, Address Line One</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityAddressAddressLine1' xlink:to='lab_dei_EntityAddressAddressLine1'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonClassAMember' xlink:label='us-gaap_CommonClassAMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CommonClassAMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Common Class A</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CommonClassAMember' xlink:to='lab_us-gaap_CommonClassAMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyLawsuitFilingDate1' xlink:label='us-gaap_LossContingencyLawsuitFilingDate1'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LossContingencyLawsuitFilingDate1' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Loss Contingency, Lawsuit Filing Date</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LossContingencyLawsuitFilingDate1' xlink:to='lab_us-gaap_LossContingencyLawsuitFilingDate1'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1' xlink:label='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Weighted Average Exercise Price</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1' xlink:to='lab_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N100111001Member' xlink:label='fil_N100111001Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N100111001Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$10.01-$11.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N100111001Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $10.01-$11.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N100111001Member' xlink:to='lab_fil_N100111001Member'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AverageCommonSharesOutstanding' xlink:label='fil_AverageCommonSharesOutstanding'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_AverageCommonSharesOutstanding' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Average common shares outstanding</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_AverageCommonSharesOutstanding' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Average common shares outstanding (number of shares), during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_AverageCommonSharesOutstanding' xlink:to='lab_fil_AverageCommonSharesOutstanding'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsNet' xlink:label='us-gaap_DeferredTaxAssetsNet'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredTaxAssetsNet' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Net deferred tax assets</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredTaxAssetsNet' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Net deferred tax assets</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DeferredTaxAssetsNet' xlink:to='lab_us-gaap_DeferredTaxAssetsNet'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_MaintenanceAndOtherInventoryGross' xlink:label='fil_MaintenanceAndOtherInventoryGross'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_MaintenanceAndOtherInventoryGross' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Maintenance and other inventory, Gross</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_MaintenanceAndOtherInventoryGross' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Maintenance and other inventory, Gross, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_MaintenanceAndOtherInventoryGross' xlink:to='lab_fil_MaintenanceAndOtherInventoryGross'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AggregateAmountRemaining' xlink:label='fil_AggregateAmountRemaining'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_AggregateAmountRemaining' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Aggregate amount remaining</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_AggregateAmountRemaining' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Aggregate amount remaining, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_AggregateAmountRemaining' xlink:to='lab_fil_AggregateAmountRemaining'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryGross' xlink:label='us-gaap_InventoryGross'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_InventoryGross' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Inventory, Gross</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_InventoryGross' xlink:to='lab_us-gaap_InventoryGross'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock' xlink:label='us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Earnings Per Common Share</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock' xlink:to='lab_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShippingAndHandlingCostPolicyTextBlock' xlink:label='us-gaap_ShippingAndHandlingCostPolicyTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShippingAndHandlingCostPolicyTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Shipping and Handling Costs:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShippingAndHandlingCostPolicyTextBlock' xlink:to='lab_us-gaap_ShippingAndHandlingCostPolicyTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:label='us-gaap_NetCashProvidedByUsedInOperatingActivities'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Net operating activities</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Net operating activities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:to='lab_us-gaap_NetCashProvidedByUsedInOperatingActivities'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings' xlink:label='us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Billings in excess of costs and estimated earnings</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings' xlink:to='lab_us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities' xlink:label='us-gaap_IncreaseDecreaseInOtherOperatingLiabilities'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Costs and estimated earnings in excess of billings</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInOtherOperatingLiabilities' xlink:to='lab_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt' xlink:label='us-gaap_GainsLossesOnExtinguishmentOfDebt'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_GainsLossesOnExtinguishmentOfDebt' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Credit loss expense</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_GainsLossesOnExtinguishmentOfDebt' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Credit loss expense</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_GainsLossesOnExtinguishmentOfDebt' xlink:to='lab_us-gaap_GainsLossesOnExtinguishmentOfDebt'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember' xlink:label='us-gaap_CommonStockMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CommonStockMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Common Stock</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CommonStockMember' xlink:to='lab_us-gaap_CommonStockMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesCurrent' xlink:label='us-gaap_AccruedLiabilitiesCurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AccruedLiabilitiesCurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accrued expenses (Note 8)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AccruedLiabilitiesCurrent' xlink:to='lab_us-gaap_AccruedLiabilitiesCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract' xlink:label='us-gaap_LiabilitiesCurrentAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LiabilitiesCurrentAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Current liabilities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LiabilitiesCurrentAbstract' xlink:to='lab_us-gaap_LiabilitiesCurrentAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryPartsAndComponentsNetOfReserves' xlink:label='us-gaap_InventoryPartsAndComponentsNetOfReserves'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_InventoryPartsAndComponentsNetOfReserves' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Inventory (Note 3)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_InventoryPartsAndComponentsNetOfReserves' xlink:to='lab_us-gaap_InventoryPartsAndComponentsNetOfReserves'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityPublicFloat' xlink:label='dei_EntityPublicFloat'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityPublicFloat' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Public Float</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityPublicFloat' xlink:to='lab_dei_EntityPublicFloat'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle' xlink:label='dei_Security12bTitle'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_Security12bTitle' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Title of 12(b) Security</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_Security12bTitle' xlink:to='lab_dei_Security12bTitle'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis' xlink:label='us-gaap_StatementClassOfStockAxis'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementClassOfStockAxis' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Class of Stock [Axis]</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StatementClassOfStockAxis' xlink:to='lab_us-gaap_StatementClassOfStockAxis'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N190120001Member' xlink:label='fil_N190120001Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N190120001Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$19.01-$20.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N190120001Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $19.01-$20.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N190120001Member' xlink:to='lab_fil_N190120001Member'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice' xlink:label='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_TaxInventoryAdjustment' xlink:label='fil_TaxInventoryAdjustment'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_TaxInventoryAdjustment' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Tax inventory adjustment</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_TaxInventoryAdjustment' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Tax inventory adjustment, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_TaxInventoryAdjustment' xlink:to='lab_fil_TaxInventoryAdjustment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsForeign' xlink:label='us-gaap_IncomeTaxReconciliationTaxCreditsForeign'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxReconciliationTaxCreditsForeign' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Foreign-derived intangible income deduction</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxReconciliationTaxCreditsForeign' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Foreign-derived intangible income deduction</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeTaxReconciliationTaxCreditsForeign' xlink:to='lab_us-gaap_IncomeTaxReconciliationTaxCreditsForeign'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate' xlink:label='us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Computed tax provision at the expected statutory rate</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate' xlink:to='lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_OtherMember' xlink:label='fil_OtherMember'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_OtherMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Other</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_OtherMember' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Other, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_OtherMember' xlink:to='lab_fil_OtherMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock' xlink:label='us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Accrued Expenses</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock' xlink:to='lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock' xlink:label='fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Maintenance and Other Inventory</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the textual narrative disclosure of Schedule of Maintenance and Other Inventory, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock' xlink:to='lab_fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock' xlink:label='us-gaap_PropertyPlantAndEquipmentPolicyTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Property and Equipment:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PropertyPlantAndEquipmentPolicyTextBlock' xlink:to='lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConsolidationPolicyTextBlock' xlink:label='us-gaap_ConsolidationPolicyTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ConsolidationPolicyTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Principles of Consolidation:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ConsolidationPolicyTextBlock' xlink:to='lab_us-gaap_ConsolidationPolicyTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock' xlink:label='us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>4. Costs and Estimated Earnings on Uncompleted Contracts:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock' xlink:to='lab_us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Depreciation' xlink:label='us-gaap_Depreciation'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_Depreciation' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Depreciation</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_Depreciation' xlink:to='lab_us-gaap_Depreciation'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue' xlink:label='us-gaap_StockRepurchasedDuringPeriodValue'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockRepurchasedDuringPeriodValue' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Repurchase of shares</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StockRepurchasedDuringPeriodValue' xlink:to='lab_us-gaap_StockRepurchasedDuringPeriodValue'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted' xlink:label='us-gaap_EarningsPerShareDiluted'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_EarningsPerShareDiluted' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Diluted earnings per common share (Note 11)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_EarningsPerShareDiluted' xlink:to='lab_us-gaap_EarningsPerShareDiluted'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpense' xlink:label='us-gaap_OtherNonoperatingIncomeExpense'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_OtherNonoperatingIncomeExpense' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Miscellaneous</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_OtherNonoperatingIncomeExpense' xlink:to='lab_us-gaap_OtherNonoperatingIncomeExpense'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues' xlink:label='us-gaap_Revenues'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_Revenues' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Sales, net (Note 9)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_Revenues' xlink:to='lab_us-gaap_Revenues'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract' xlink:label='us-gaap_LiabilitiesAndStockholdersEquityAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Liabilities and Stockholders&apos; Equity</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LiabilitiesAndStockholdersEquityAbstract' xlink:to='lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AuditorFirmId' xlink:label='dei_AuditorFirmId'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_AuditorFirmId' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Auditor Firm ID</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_AuditorFirmId' xlink:to='lab_dei_AuditorFirmId'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory' xlink:label='dei_EntityFilerCategory'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityFilerCategory' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Filer Category</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityFilerCategory' xlink:to='lab_dei_EntityFilerCategory'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus' xlink:label='dei_EntityCurrentReportingStatus'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityCurrentReportingStatus' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Current Reporting Status</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityCurrentReportingStatus' xlink:to='lab_dei_EntityCurrentReportingStatus'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AverageCommonSharesOutstandingAssumingDilution' xlink:label='fil_AverageCommonSharesOutstandingAssumingDilution'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_AverageCommonSharesOutstandingAssumingDilution' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Average common shares outstanding assuming dilution</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_AverageCommonSharesOutstandingAssumingDilution' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Average common shares outstanding assuming dilution</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_AverageCommonSharesOutstandingAssumingDilution' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Average common shares outstanding assuming dilution (number of shares), during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_AverageCommonSharesOutstandingAssumingDilution' xlink:to='lab_fil_AverageCommonSharesOutstandingAssumingDilution'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_StructuralMember' xlink:label='fil_StructuralMember'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_StructuralMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Structural</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_StructuralMember' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Structural, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_StructuralMember' xlink:to='lab_fil_StructuralMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain' xlink:label='us-gaap_SegmentDomain'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_SegmentDomain' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Segments</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_SegmentDomain' xlink:to='lab_us-gaap_SegmentDomain'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryAdjustments' xlink:label='us-gaap_InventoryAdjustments'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_InventoryAdjustments' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Less allowance for obsolescence</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_InventoryAdjustments' xlink:to='lab_us-gaap_InventoryAdjustments'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_WorkInProcessMember' xlink:label='fil_WorkInProcessMember'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_WorkInProcessMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Work-in-process</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_WorkInProcessMember' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Work-in-process, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_WorkInProcessMember' xlink:to='lab_fil_WorkInProcessMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain' xlink:label='srt_NameOfMajorCustomerDomain'/>
		<link:label xlink:type='resource' xlink:label='lab_srt_NameOfMajorCustomerDomain' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Customer</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='srt_NameOfMajorCustomerDomain' xlink:to='lab_srt_NameOfMajorCustomerDomain'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock' xlink:label='us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Costs incurred on uncompleted contracts and Estimated earnings</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock' xlink:to='lab_us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfUtilityInventoryTextBlock' xlink:label='us-gaap_ScheduleOfUtilityInventoryTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ScheduleOfUtilityInventoryTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Inventory</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ScheduleOfUtilityInventoryTextBlock' xlink:to='lab_us-gaap_ScheduleOfUtilityInventoryTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock' xlink:label='us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>13. Stock Option Plans:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock' xlink:to='lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock' xlink:label='us-gaap_PaymentsForRepurchaseOfCommonStock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PaymentsForRepurchaseOfCommonStock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Acquisition of treasury stock</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PaymentsForRepurchaseOfCommonStock' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Acquisition of treasury stock</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PaymentsForRepurchaseOfCommonStock' xlink:to='lab_us-gaap_PaymentsForRepurchaseOfCommonStock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember' xlink:label='us-gaap_RetainedEarningsMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_RetainedEarningsMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Retained Earnings</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_RetainedEarningsMember' xlink:to='lab_us-gaap_RetainedEarningsMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonoperatingIncomeExpense' xlink:label='us-gaap_NonoperatingIncomeExpense'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NonoperatingIncomeExpense' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Total other income, net</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NonoperatingIncomeExpense' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Total other income, net</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NonoperatingIncomeExpense' xlink:to='lab_us-gaap_NonoperatingIncomeExpense'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense' xlink:label='us-gaap_ResearchAndDevelopmentExpense'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ResearchAndDevelopmentExpense' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Research and development costs</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ResearchAndDevelopmentExpense' xlink:to='lab_us-gaap_ResearchAndDevelopmentExpense'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit' xlink:label='us-gaap_RetainedEarningsAccumulatedDeficit'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_RetainedEarningsAccumulatedDeficit' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Retained earnings</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_RetainedEarningsAccumulatedDeficit' xlink:to='lab_us-gaap_RetainedEarningsAccumulatedDeficit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent' xlink:label='us-gaap_AccountsPayableCurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AccountsPayableCurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accounts payable</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AccountsPayableCurrent' xlink:to='lab_us-gaap_AccountsPayableCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxAssetsNet' xlink:label='us-gaap_DeferredIncomeTaxAssetsNet'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredIncomeTaxAssetsNet' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Deferred income taxes (Note 10)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DeferredIncomeTaxAssetsNet' xlink:to='lab_us-gaap_DeferredIncomeTaxAssetsNet'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent' xlink:label='us-gaap_OtherAssetsCurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_OtherAssetsCurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Prepaid income taxes</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_OtherAssetsCurrent' xlink:to='lab_us-gaap_OtherAssetsCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag' xlink:label='dei_AmendmentFlag'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_AmendmentFlag' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Amendment Flag</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_AmendmentFlag' xlink:to='lab_dei_AmendmentFlag'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N110112001Member' xlink:label='fil_N110112001Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N110112001Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$11.01-$12.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N110112001Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $11.01-$12.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N110112001Member' xlink:to='lab_fil_N110112001Member'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised' xlink:label='us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised' xlink:to='lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Expected dividend yield</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' xlink:label='us-gaap_IncomeTaxReconciliationTaxCreditsAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Tax effect of permanent differences</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' xlink:to='lab_us-gaap_IncomeTaxReconciliationTaxCreditsAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_IndustrialMember' xlink:label='fil_IndustrialMember'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_IndustrialMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Industrial</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_IndustrialMember' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Industrial, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_IndustrialMember' xlink:to='lab_fil_IndustrialMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCredit' xlink:label='us-gaap_LineOfCredit'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LineOfCredit' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Long-Term Line of Credit</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LineOfCredit' xlink:to='lab_us-gaap_LineOfCredit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BuildingImprovementsMember' xlink:label='us-gaap_BuildingImprovementsMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_BuildingImprovementsMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Building Improvements</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_BuildingImprovementsMember' xlink:to='lab_us-gaap_BuildingImprovementsMember'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_InventoryDisposedOf' xlink:label='fil_InventoryDisposedOf'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_InventoryDisposedOf' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Inventory disposed of</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_InventoryDisposedOf' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Inventory disposed of, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_InventoryDisposedOf' xlink:to='lab_fil_InventoryDisposedOf'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesInventoryTypeDomain' xlink:label='us-gaap_PublicUtilitiesInventoryTypeDomain'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PublicUtilitiesInventoryTypeDomain' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Inventory {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PublicUtilitiesInventoryTypeDomain' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Inventory</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PublicUtilitiesInventoryTypeDomain' xlink:to='lab_us-gaap_PublicUtilitiesInventoryTypeDomain'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableGrossCurrent' xlink:label='us-gaap_AccountsReceivableGrossCurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AccountsReceivableGrossCurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accounts Receivable, before Allowance for Credit Loss, Current</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AccountsReceivableGrossCurrent' xlink:to='lab_us-gaap_AccountsReceivableGrossCurrent'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CustomersMember' xlink:label='fil_CustomersMember'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CustomersMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Customers</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CustomersMember' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Customers, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CustomersMember' xlink:to='lab_fil_CustomersMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock' xlink:label='us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Stock Options Activity</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock' xlink:to='lab_us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock' xlink:label='us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accounts and Other Receivables</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock' xlink:to='lab_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RegulatoryIncomeTaxesPolicy' xlink:label='us-gaap_RegulatoryIncomeTaxesPolicy'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_RegulatoryIncomeTaxesPolicy' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Sales Taxes:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_RegulatoryIncomeTaxesPolicy' xlink:to='lab_us-gaap_RegulatoryIncomeTaxesPolicy'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UseOfEstimates' xlink:label='us-gaap_UseOfEstimates'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_UseOfEstimates' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Use of Estimates:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_UseOfEstimates' xlink:to='lab_us-gaap_UseOfEstimates'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireIntangibleAssets' xlink:label='us-gaap_PaymentsToAcquireIntangibleAssets'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PaymentsToAcquireIntangibleAssets' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Patent expenditures</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PaymentsToAcquireIntangibleAssets' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Patent expenditures</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PaymentsToAcquireIntangibleAssets' xlink:to='lab_us-gaap_PaymentsToAcquireIntangibleAssets'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets' xlink:label='us-gaap_IncreaseDecreaseInOtherOperatingAssets'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInOtherOperatingAssets' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Other assets {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInOtherOperatingAssets' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Other assets</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInOtherOperatingAssets' xlink:to='lab_us-gaap_IncreaseDecreaseInOtherOperatingAssets'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories' xlink:label='us-gaap_IncreaseDecreaseInInventories'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInInventories' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Inventory</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInInventories' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Inventory</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInInventories' xlink:to='lab_us-gaap_IncreaseDecreaseInInventories'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxesAndTaxCredits' xlink:label='us-gaap_DeferredIncomeTaxesAndTaxCredits'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredIncomeTaxesAndTaxCredits' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Deferred income taxes</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DeferredIncomeTaxesAndTaxCredits' xlink:to='lab_us-gaap_DeferredIncomeTaxesAndTaxCredits'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InvestmentIncomeInterest' xlink:label='us-gaap_InvestmentIncomeInterest'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_InvestmentIncomeInterest' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Interest, net</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_InvestmentIncomeInterest' xlink:to='lab_us-gaap_InvestmentIncomeInterest'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit' xlink:label='us-gaap_GrossProfit'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_GrossProfit' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Gross profit</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_GrossProfit' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Gross profit</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_GrossProfit' xlink:to='lab_us-gaap_GrossProfit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue' xlink:label='us-gaap_CommonStockValue'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CommonStockValue' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Common Stock, Value</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CommonStockValue' xlink:to='lab_us-gaap_CommonStockValue'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityVoluntaryFilers' xlink:label='dei_EntityVoluntaryFilers'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityVoluntaryFilers' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Voluntary Filers</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityVoluntaryFilers' xlink:to='lab_dei_EntityVoluntaryFilers'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode' xlink:label='dei_EntityIncorporationStateCountryCode'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityIncorporationStateCountryCode' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Incorporation, State or Country Code</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityIncorporationStateCountryCode' xlink:to='lab_dei_EntityIncorporationStateCountryCode'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber' xlink:label='dei_EntityFileNumber'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityFileNumber' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity File Number</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityFileNumber' xlink:to='lab_dei_EntityFileNumber'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentFederalTaxExpenseBenefit' xlink:label='us-gaap_CurrentFederalTaxExpenseBenefit'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CurrentFederalTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Federal</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CurrentFederalTaxExpenseBenefit' xlink:to='lab_us-gaap_CurrentFederalTaxExpenseBenefit'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_PersonnelCostsMember' xlink:label='fil_PersonnelCostsMember'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_PersonnelCostsMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Personnel costs</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_PersonnelCostsMember' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the Personnel costs, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_PersonnelCostsMember' xlink:to='lab_fil_PersonnelCostsMember'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:label='us-gaap_PropertyPlantAndEquipmentTypeDomain'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Long-Lived Tangible Asset</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:to='lab_us-gaap_PropertyPlantAndEquipmentTypeDomain'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings' xlink:label='fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Revenues Recognized For amounts included in billings in excess of costs and estimated earnings</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Revenues Recognized For amounts included in billings in excess of costs and estimated earnings, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings' xlink:to='lab_fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock' xlink:label='us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Short-Term Investments:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock' xlink:to='lab_us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForProceedsFromOtherInvestingActivities' xlink:label='us-gaap_PaymentsForProceedsFromOtherInvestingActivities'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PaymentsForProceedsFromOtherInvestingActivities' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Increase in cash value of life insurance</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PaymentsForProceedsFromOtherInvestingActivities' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Increase in cash value of life insurance</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PaymentsForProceedsFromOtherInvestingActivities' xlink:to='lab_us-gaap_PaymentsForProceedsFromOtherInvestingActivities'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment' xlink:label='us-gaap_PaymentsToAcquirePropertyPlantAndEquipment'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Acquisition of property and equipment</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Acquisition of property and equipment</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PaymentsToAcquirePropertyPlantAndEquipment' xlink:to='lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract' xlink:label='us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Investing activities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract' xlink:to='lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfCashFlowsAbstract' xlink:label='us-gaap_StatementOfCashFlowsAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementOfCashFlowsAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Details {4}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementOfCashFlowsAbstract' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Details</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StatementOfCashFlowsAbstract' xlink:to='lab_us-gaap_StatementOfCashFlowsAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss' xlink:label='us-gaap_OperatingIncomeLoss'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_OperatingIncomeLoss' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Operating income</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_OperatingIncomeLoss' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Operating income</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_OperatingIncomeLoss' xlink:to='lab_us-gaap_OperatingIncomeLoss'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockParOrStatedValuePerShare' xlink:label='us-gaap_CommonStockParOrStatedValuePerShare'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CommonStockParOrStatedValuePerShare' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Common Stock, Par or Stated Value Per Share</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CommonStockParOrStatedValuePerShare' xlink:to='lab_us-gaap_CommonStockParOrStatedValuePerShare'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockValue' xlink:label='us-gaap_TreasuryStockValue'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_TreasuryStockValue' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Treasury stock - 1,051,688 and 1,046,742 shares at cost</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_TreasuryStockValue' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Treasury stock - 1,051,688 and 1,046,742 shares at cost</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_TreasuryStockValue' xlink:to='lab_us-gaap_TreasuryStockValue'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent' xlink:label='us-gaap_LiabilitiesCurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LiabilitiesCurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Total current liabilities</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LiabilitiesCurrent' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Total current liabilities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LiabilitiesCurrent' xlink:to='lab_us-gaap_LiabilitiesCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness' xlink:label='dei_EntitySmallBusiness'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntitySmallBusiness' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Small Business</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntitySmallBusiness' xlink:to='lab_dei_EntitySmallBusiness'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown' xlink:label='dei_EntityAddressCityOrTown'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityAddressCityOrTown' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Address, City or Town</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityAddressCityOrTown' xlink:to='lab_dei_EntityAddressCityOrTown'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate' xlink:label='dei_DocumentPeriodEndDate'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_DocumentPeriodEndDate' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Document Period End Date</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_DocumentPeriodEndDate' xlink:to='lab_dei_DocumentPeriodEndDate'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions' xlink:label='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Number of Options</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions' xlink:to='lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N9014700Member' xlink:label='fil_N9014700Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N9014700Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$ 9.01-$47.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N9014700Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $ 9.01-$47.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N9014700Member' xlink:to='lab_fil_N9014700Member'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_WarrantyReserve' xlink:label='fil_WarrantyReserve'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_WarrantyReserve' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Warranty reserve</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_WarrantyReserve' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Warranty reserve, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_WarrantyReserve' xlink:to='lab_fil_WarrantyReserve'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AccruedVacation' xlink:label='fil_AccruedVacation'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_AccruedVacation' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accrued vacation</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_AccruedVacation' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Accrued vacation, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_AccruedVacation' xlink:to='lab_fil_AccruedVacation'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit' xlink:label='us-gaap_CurrentStateAndLocalTaxExpenseBenefit'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>State</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CurrentStateAndLocalTaxExpenseBenefit' xlink:to='lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock' xlink:label='fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Amounts are included in the accompanying balance sheets</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the textual narrative disclosure of Schedule of Amounts are included in the accompanying balance sheets, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock' xlink:to='lab_fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock' xlink:label='us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>New Accounting Standards:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock' xlink:to='lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxPolicyTextBlock' xlink:label='us-gaap_IncomeTaxPolicyTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxPolicyTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Income Taxes:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeTaxPolicyTextBlock' xlink:to='lab_us-gaap_IncomeTaxPolicyTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock' xlink:label='us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>8. Accrued Expenses:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock' xlink:to='lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable' xlink:label='us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accrued income taxes {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Accrued income taxes</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable' xlink:to='lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherCurrentAssets' xlink:label='us-gaap_IncreaseDecreaseInOtherCurrentAssets'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInOtherCurrentAssets' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Prepaid income taxes {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInOtherCurrentAssets' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Prepaid income taxes</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInOtherCurrentAssets' xlink:to='lab_us-gaap_IncreaseDecreaseInOtherCurrentAssets'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockCommonShares' xlink:label='us-gaap_TreasuryStockCommonShares'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_TreasuryStockCommonShares' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Treasury Stock, Common, Shares</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_TreasuryStockCommonShares' xlink:to='lab_us-gaap_TreasuryStockCommonShares'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized' xlink:label='us-gaap_CommonStockSharesAuthorized'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CommonStockSharesAuthorized' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Common Stock, Shares Authorized</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CommonStockSharesAuthorized' xlink:to='lab_us-gaap_CommonStockSharesAuthorized'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName' xlink:label='dei_SecurityExchangeName'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_SecurityExchangeName' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Security Exchange Name</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_SecurityExchangeName' xlink:to='lab_dei_SecurityExchangeName'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber' xlink:label='dei_EntityTaxIdentificationNumber'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityTaxIdentificationNumber' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Tax Identification Number</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityTaxIdentificationNumber' xlink:to='lab_dei_EntityTaxIdentificationNumber'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport' xlink:label='dei_DocumentTransitionReport'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_DocumentTransitionReport' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Document Transition Report</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_DocumentTransitionReport' xlink:to='lab_dei_DocumentTransitionReport'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PensionAndOtherPostretirementBenefitExpense' xlink:label='us-gaap_PensionAndOtherPostretirementBenefitExpense'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PensionAndOtherPostretirementBenefitExpense' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Pension and Other Postretirement Benefits Cost (Reversal of Cost)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PensionAndOtherPostretirementBenefitExpense' xlink:to='lab_us-gaap_PensionAndOtherPostretirementBenefitExpense'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N90110001Member' xlink:label='fil_N90110001Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N90110001Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$ 9.01-$10.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N90110001Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $ 9.01-$10.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N90110001Member' xlink:to='lab_fil_N90110001Member'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AllowanceForDoubtfulReceivables' xlink:label='fil_AllowanceForDoubtfulReceivables'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_AllowanceForDoubtfulReceivables' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Allowance for doubtful receivables</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_AllowanceForDoubtfulReceivables' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Allowance for doubtful receivables, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_AllowanceForDoubtfulReceivables' xlink:to='lab_fil_AllowanceForDoubtfulReceivables'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations' xlink:label='us-gaap_EffectiveIncomeTaxRateContinuingOperations'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Effective income tax rate</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_EffectiveIncomeTaxRateContinuingOperations' xlink:to='lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis' xlink:label='us-gaap_StatementBusinessSegmentsAxis'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementBusinessSegmentsAxis' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Segments [Axis]</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StatementBusinessSegmentsAxis' xlink:to='lab_us-gaap_StatementBusinessSegmentsAxis'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LandImprovementsMember' xlink:label='us-gaap_LandImprovementsMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LandImprovementsMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Land Improvements {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LandImprovementsMember' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Land Improvements</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LandImprovementsMember' xlink:to='lab_us-gaap_LandImprovementsMember'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_BillingsInExcessOfCostsAndEstimatedEarnings' xlink:label='fil_BillingsInExcessOfCostsAndEstimatedEarnings'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_BillingsInExcessOfCostsAndEstimatedEarnings' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Billings in excess of costs and estimated earnings {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_BillingsInExcessOfCostsAndEstimatedEarnings' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Billings in excess of costs and estimated earnings</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_BillingsInExcessOfCostsAndEstimatedEarnings' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Billings in excess of costs and estimated earnings, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_BillingsInExcessOfCostsAndEstimatedEarnings' xlink:to='lab_fil_BillingsInExcessOfCostsAndEstimatedEarnings'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis' xlink:label='srt_MajorCustomersAxis'/>
		<link:label xlink:type='resource' xlink:label='lab_srt_MajorCustomersAxis' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Customer [Axis]</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='srt_MajorCustomersAxis' xlink:to='lab_srt_MajorCustomersAxis'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock' xlink:label='us-gaap_CashAndCashEquivalentsPolicyTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Cash and Cash Equivalents:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CashAndCashEquivalentsPolicyTextBlock' xlink:to='lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock' xlink:label='us-gaap_CashFlowSupplementalDisclosuresTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CashFlowSupplementalDisclosuresTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>16. Cash Flows Information:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CashFlowSupplementalDisclosuresTextBlock' xlink:to='lab_us-gaap_CashFlowSupplementalDisclosuresTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AcquisitionCosts' xlink:label='us-gaap_AcquisitionCosts'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AcquisitionCosts' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Amortization {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AcquisitionCosts' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Amortization</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AcquisitionCosts' xlink:to='lab_us-gaap_AcquisitionCosts'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract' xlink:label='us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Operating activities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis' xlink:label='us-gaap_StatementEquityComponentsAxis'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementEquityComponentsAxis' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Equity Components [Axis]</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StatementEquityComponentsAxis' xlink:to='lab_us-gaap_StatementEquityComponentsAxis'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital' xlink:label='us-gaap_AdditionalPaidInCapital'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AdditionalPaidInCapital' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Paid-in capital</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AdditionalPaidInCapital' xlink:to='lab_us-gaap_AdditionalPaidInCapital'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract' xlink:label='us-gaap_StockholdersEquityAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StockholdersEquityAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Stockholders&apos; Equity</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StockholdersEquityAbstract' xlink:to='lab_us-gaap_StockholdersEquityAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode' xlink:label='dei_EntityAddressPostalZipCode'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityAddressPostalZipCode' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Address, Postal Zip Code</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityAddressPostalZipCode' xlink:to='lab_dei_EntityAddressPostalZipCode'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType' xlink:label='dei_DocumentType'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_DocumentType' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Document Type</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_DocumentType' xlink:to='lab_dei_DocumentType'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_TextBlockAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Details</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_TextBlockAbstract' xlink:to='lab_us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N43014400Member' xlink:label='fil_N43014400Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N43014400Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$43.01-$44.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N43014400Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $43.01-$44.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N43014400Member' xlink:to='lab_fil_N43014400Member'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N30013100Member' xlink:label='fil_N30013100Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N30013100Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$30.01-$31.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N30013100Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $30.01-$31.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N30013100Member' xlink:to='lab_fil_N30013100Member'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue' xlink:role='http://www.xbrl.org/2003/role/periodStartLabel' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue' xlink:role='http://www.xbrl.org/2003/role/periodEndLabel' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationOtherReconcilingItems' xlink:label='us-gaap_IncomeTaxReconciliationOtherReconcilingItems'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncomeTaxReconciliationOtherReconcilingItems' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Other permanent differences</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncomeTaxReconciliationOtherReconcilingItems' xlink:to='lab_us-gaap_IncomeTaxReconciliationOtherReconcilingItems'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit' xlink:label='us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>State {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>State</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit' xlink:to='lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit' xlink:label='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Current Federal, State and Local, Tax Expense (Benefit)</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Current Federal, State and Local, Tax Expense (Benefit)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit' xlink:to='lab_us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByLiabilityClassAxis' xlink:label='us-gaap_FairValueByLiabilityClassAxis'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_FairValueByLiabilityClassAxis' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Liability Class [Axis]</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_FairValueByLiabilityClassAxis' xlink:to='lab_us-gaap_FairValueByLiabilityClassAxis'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FurnitureAndFixturesMember' xlink:label='us-gaap_FurnitureAndFixturesMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_FurnitureAndFixturesMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Furniture and Fixtures</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_FurnitureAndFixturesMember' xlink:to='lab_us-gaap_FurnitureAndFixturesMember'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_MaintenanceAndOtherInventoryAllowanceForObsolescence' xlink:label='fil_MaintenanceAndOtherInventoryAllowanceForObsolescence'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_MaintenanceAndOtherInventoryAllowanceForObsolescence' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Maintenance and other inventory, allowance for obsolescence</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_MaintenanceAndOtherInventoryAllowanceForObsolescence' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Maintenance and other inventory, allowance for obsolescence, as of the indicated date.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_MaintenanceAndOtherInventoryAllowanceForObsolescence' xlink:to='lab_fil_MaintenanceAndOtherInventoryAllowanceForObsolescence'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsNet' xlink:label='fil_CostsIncurredOnUncompletedContractsNet'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContractsNet' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Costs incurred on uncompleted contracts, Net</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContractsNet' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Costs incurred on uncompleted contracts, Net</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContractsNet' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Costs incurred on uncompleted contracts, Net, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CostsIncurredOnUncompletedContractsNet' xlink:to='lab_fil_CostsIncurredOnUncompletedContractsNet'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet' xlink:label='us-gaap_InventoryNet'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_InventoryNet' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Inventory, Net</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_InventoryNet' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Inventory, Net</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_InventoryNet' xlink:to='lab_us-gaap_InventoryNet'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock' xlink:label='us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Components of Income Tax Expense (Benefit)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock' xlink:to='lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock' xlink:label='us-gaap_DisaggregationOfRevenueTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DisaggregationOfRevenueTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Disaggregation of Sales Revenue</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DisaggregationOfRevenueTableTextBlock' xlink:to='lab_us-gaap_DisaggregationOfRevenueTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy' xlink:label='us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Stock-Based Compensation:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy' xlink:to='lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:label='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Adjustments to reconcile net income to net cash flows from operating activities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='lab_us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic' xlink:label='us-gaap_EarningsPerShareBasic'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_EarningsPerShareBasic' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Basic earnings per common share (Note 11)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_EarningsPerShareBasic' xlink:to='lab_us-gaap_EarningsPerShareBasic'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonoperatingIncomeExpenseAbstract' xlink:label='us-gaap_NonoperatingIncomeExpenseAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NonoperatingIncomeExpenseAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Other income</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NonoperatingIncomeExpenseAbstract' xlink:to='lab_us-gaap_NonoperatingIncomeExpenseAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingGeneralAndAdministrativeExpense' xlink:label='us-gaap_SellingGeneralAndAdministrativeExpense'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_SellingGeneralAndAdministrativeExpense' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Selling, general and administrative expenses</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_SellingGeneralAndAdministrativeExpense' xlink:to='lab_us-gaap_SellingGeneralAndAdministrativeExpense'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity' xlink:label='us-gaap_LiabilitiesAndStockholdersEquity'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LiabilitiesAndStockholdersEquity' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Liabilities and Equity</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_LiabilitiesAndStockholdersEquity' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Liabilities and Equity</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_LiabilitiesAndStockholdersEquity' xlink:to='lab_us-gaap_LiabilitiesAndStockholdersEquity'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets' xlink:label='us-gaap_Assets'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_Assets' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Assets</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_Assets' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Assets</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_Assets' xlink:to='lab_us-gaap_Assets'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermInvestments' xlink:label='us-gaap_ShortTermInvestments'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShortTermInvestments' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Short-term investments</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShortTermInvestments' xlink:to='lab_us-gaap_ShortTermInvestments'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract' xlink:label='us-gaap_AssetsCurrentAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AssetsCurrentAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Current assets</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AssetsCurrentAbstract' xlink:to='lab_us-gaap_AssetsCurrentAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AuditorLocation' xlink:label='dei_AuditorLocation'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_AuditorLocation' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Auditor Location</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_AuditorLocation' xlink:to='lab_dei_AuditorLocation'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode' xlink:label='dei_CityAreaCode'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_CityAreaCode' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>City Area Code</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_CityAreaCode' xlink:to='lab_dei_CityAreaCode'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentAnnualReport' xlink:label='dei_DocumentAnnualReport'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_DocumentAnnualReport' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Document Annual Report</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_DocumentAnnualReport' xlink:to='lab_dei_DocumentAnnualReport'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementLineItems' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Statement [Line Items]</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StatementLineItems' xlink:to='lab_us-gaap_StatementLineItems'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_StatementTable' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Statement</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_StatementTable' xlink:to='lab_us-gaap_StatementTable'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N46014700Member' xlink:label='fil_N46014700Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N46014700Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$46.01-$47.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N46014700Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $46.01-$47.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N46014700Member' xlink:to='lab_fil_N46014700Member'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N120113001Member' xlink:label='fil_N120113001Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N120113001Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$12.01-$13.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N120113001Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $12.01-$13.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N120113001Member' xlink:to='lab_fil_N120113001Member'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice' xlink:label='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price, Beginning Balance</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice' xlink:role='http://www.xbrl.org/2003/role/periodStartLabel' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price, Beginning Balance</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice' xlink:role='http://www.xbrl.org/2003/role/periodEndLabel' xml:lang='en-US'>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price, Ending Balance</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_ProvisionForPotentialInventoryObsolescence' xlink:label='fil_ProvisionForPotentialInventoryObsolescence'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_ProvisionForPotentialInventoryObsolescence' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Provision for potential inventory obsolescence</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_ProvisionForPotentialInventoryObsolescence' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Provision for potential inventory obsolescence, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_ProvisionForPotentialInventoryObsolescence' xlink:to='lab_fil_ProvisionForPotentialInventoryObsolescence'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsBillingsToDate' xlink:label='fil_CostsIncurredOnUncompletedContractsBillingsToDate'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContractsBillingsToDate' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Costs incurred on uncompleted contracts, Billings to date</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContractsBillingsToDate' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Costs incurred on uncompleted contracts, Billings to date, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CostsIncurredOnUncompletedContractsBillingsToDate' xlink:to='lab_fil_CostsIncurredOnUncompletedContractsBillingsToDate'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock' xlink:label='us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Effective Income Tax Rate Reconciliation</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock' xlink:to='lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryPolicyTextBlock' xlink:label='us-gaap_InventoryPolicyTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_InventoryPolicyTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Inventory:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_InventoryPolicyTextBlock' xlink:to='lab_us-gaap_InventoryPolicyTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NatureOfOperations' xlink:label='us-gaap_NatureOfOperations'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NatureOfOperations' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Nature of Operations:</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NatureOfOperations' xlink:to='lab_us-gaap_NatureOfOperations'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract' xlink:label='us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Financing activities</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract' xlink:to='lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireOtherInvestments' xlink:label='us-gaap_PaymentsToAcquireOtherInvestments'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PaymentsToAcquireOtherInvestments' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Increase in short-term investments</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_PaymentsToAcquireOtherInvestments' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Increase in short-term investments</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_PaymentsToAcquireOtherInvestments' xlink:to='lab_us-gaap_PaymentsToAcquireOtherInvestments'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue' xlink:label='us-gaap_CashAndCashEquivalentsAtCarryingValue'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_CashAndCashEquivalentsAtCarryingValue' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Cash and cash equivalents</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_CashAndCashEquivalentsAtCarryingValue' xlink:to='lab_us-gaap_CashAndCashEquivalentsAtCarryingValue'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityWellKnownSeasonedIssuer' xlink:label='dei_EntityWellKnownSeasonedIssuer'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityWellKnownSeasonedIssuer' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Well-known Seasoned Issuer</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityWellKnownSeasonedIssuer' xlink:to='lab_dei_EntityWellKnownSeasonedIssuer'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol' xlink:label='dei_TradingSymbol'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_TradingSymbol' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Trading Symbol</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_TradingSymbol' xlink:to='lab_dei_TradingSymbol'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N20012100Member' xlink:label='fil_N20012100Member'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_N20012100Member' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>$20.01-$21.00</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_N20012100Member' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the $20.01-$21.00, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_N20012100Member' xlink:to='lab_fil_N20012100Member'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Expected volatility</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate' xlink:to='lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_StockOptionCosts' xlink:label='fil_StockOptionCosts'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_StockOptionCosts' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Stock option costs</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_StockOptionCosts' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Stock option costs, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_StockOptionCosts' xlink:to='lab_fil_StockOptionCosts'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:label='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Deferred tax provision (benefit)</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:to='lab_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment' xlink:label='us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Less accumulated depreciation</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment' xlink:to='lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VehiclesMember' xlink:label='us-gaap_VehiclesMember'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_VehiclesMember' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Vehicles</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_VehiclesMember' xlink:to='lab_us-gaap_VehiclesMember'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsEstimatedEarnings' xlink:label='fil_CostsIncurredOnUncompletedContractsEstimatedEarnings'/>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContractsEstimatedEarnings' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Costs incurred on uncompleted contracts, Estimated earnings</link:label>
		<link:label xlink:type='resource' xlink:label='lab_fil_CostsIncurredOnUncompletedContractsEstimatedEarnings' xlink:role='http://www.xbrl.org/2003/role/documentation' xml:lang='en-US'>Represents the monetary amount of Costs incurred on uncompleted contracts, Estimated earnings, during the indicated time period.</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='fil_CostsIncurredOnUncompletedContractsEstimatedEarnings' xlink:to='lab_fil_CostsIncurredOnUncompletedContractsEstimatedEarnings'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueOptionTextBlock' xlink:label='us-gaap_FairValueOptionTextBlock'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_FairValueOptionTextBlock' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Schedule of Fair Value Assumptions</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_FairValueOptionTextBlock' xlink:to='lab_us-gaap_FairValueOptionTextBlock'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_TableTextBlockSupplementAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Tables/Schedules</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='lab_us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities' xlink:label='us-gaap_IncreaseDecreaseInAccruedLiabilities'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInAccruedLiabilities' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accrued expenses</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInAccruedLiabilities' xlink:to='lab_us-gaap_IncreaseDecreaseInAccruedLiabilities'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable' xlink:label='us-gaap_IncreaseDecreaseInAccountsReceivable'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInAccountsReceivable' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Accounts and other receivables</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_IncreaseDecreaseInAccountsReceivable' xlink:role='http://www.xbrl.org/2009/role/negatedLabel' xml:lang='en-US'>Accounts and other receivables</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_IncreaseDecreaseInAccountsReceivable' xlink:to='lab_us-gaap_IncreaseDecreaseInAccountsReceivable'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent' xlink:label='us-gaap_AssetsCurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AssetsCurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Total current assets</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AssetsCurrent' xlink:role='http://www.xbrl.org/2003/role/totalLabel' xml:lang='en-US'>Total current assets</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AssetsCurrent' xlink:to='lab_us-gaap_AssetsCurrent'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsAbstract' xlink:label='us-gaap_AssetsAbstract'/>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AssetsAbstract' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Assets {1}</link:label>
		<link:label xlink:type='resource' xlink:label='lab_us-gaap_AssetsAbstract' xlink:role='http://www.xbrl.org/2003/role/terseLabel' xml:lang='en-US'>Assets</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='us-gaap_AssetsAbstract' xlink:to='lab_us-gaap_AssetsAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding' xlink:label='dei_EntityCommonStockSharesOutstanding'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityCommonStockSharesOutstanding' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Common Stock, Shares Outstanding</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityCommonStockSharesOutstanding' xlink:to='lab_dei_EntityCommonStockSharesOutstanding'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany' xlink:label='dei_EntityEmergingGrowthCompany'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityEmergingGrowthCompany' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Emerging Growth Company</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityEmergingGrowthCompany' xlink:to='lab_dei_EntityEmergingGrowthCompany'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent' xlink:label='dei_EntityInteractiveDataCurrent'/>
		<link:label xlink:type='resource' xlink:label='lab_dei_EntityInteractiveDataCurrent' xlink:role='http://www.xbrl.org/2003/role/label' xml:lang='en-US'>Entity Interactive Data Current</link:label>
		<link:labelArc order='1.0' xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/concept-label' xlink:from='dei_EntityInteractiveDataCurrent' xlink:to='lab_dei_EntityInteractiveDataCurrent'/>
	</link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>11
<FILENAME>tayd-20250531_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version='1.0' encoding='iso-8859-1'?>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA3WEKVX]. www.edgarsuite.com -->
<link:linkbase xmlns="http://www.xbrl.org/2003/linkbase"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"
		xmlns:fil="http://taylordevices.com/20250531"
		xmlns:link="http://www.xbrl.org/2003/linkbase"
		xmlns:xlink="http://www.w3.org/1999/xlink"
		xmlns:xbrldt="http://xbrl.org/2005/xbrldt"
		xmlns:xbrli="http://www.xbrl.org/2003/instance">
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_DocumentDocumentAndEntityInformation"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_StatementTable' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis' xlink:label='us-gaap_StatementClassOfStockAxis'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementClassOfStockAxis' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain' xlink:label='us-gaap_ClassOfStockDomain'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementClassOfStockAxis' xlink:to='us-gaap_ClassOfStockDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonClassAMember' xlink:label='us-gaap_CommonClassAMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementClassOfStockAxis' xlink:to='us-gaap_CommonClassAMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesAPreferredStockMember' xlink:label='us-gaap_SeriesAPreferredStockMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementClassOfStockAxis' xlink:to='us-gaap_SeriesAPreferredStockMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementLineItems' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey' xlink:label='dei_EntityCentralIndexKey'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityCentralIndexKey' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate' xlink:label='dei_CurrentFiscalYearEndDate'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_CurrentFiscalYearEndDate' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType' xlink:label='dei_DocumentType'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentType' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentAnnualReport' xlink:label='dei_DocumentAnnualReport'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentAnnualReport' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate' xlink:label='dei_DocumentPeriodEndDate'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentPeriodEndDate' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport' xlink:label='dei_DocumentTransitionReport'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentTransitionReport' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber' xlink:label='dei_EntityFileNumber'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityFileNumber' use='optional' order='7.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName' xlink:label='dei_EntityRegistrantName'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityRegistrantName' use='optional' order='8.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode' xlink:label='dei_EntityIncorporationStateCountryCode'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityIncorporationStateCountryCode' use='optional' order='9.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber' xlink:label='dei_EntityTaxIdentificationNumber'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityTaxIdentificationNumber' use='optional' order='10.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1' xlink:label='dei_EntityAddressAddressLine1'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityAddressAddressLine1' use='optional' order='11.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown' xlink:label='dei_EntityAddressCityOrTown'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityAddressCityOrTown' use='optional' order='12.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince' xlink:label='dei_EntityAddressStateOrProvince'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityAddressStateOrProvince' use='optional' order='13.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode' xlink:label='dei_EntityAddressPostalZipCode'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityAddressPostalZipCode' use='optional' order='14.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressDescription' xlink:label='dei_EntityAddressAddressDescription'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityAddressAddressDescription' use='optional' order='15.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_PhoneFaxNumberDescription' xlink:label='dei_PhoneFaxNumberDescription'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_PhoneFaxNumberDescription' use='optional' order='16.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode' xlink:label='dei_CityAreaCode'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_CityAreaCode' use='optional' order='17.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber' xlink:label='dei_LocalPhoneNumber'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_LocalPhoneNumber' use='optional' order='18.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle' xlink:label='dei_Security12bTitle'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_Security12bTitle' use='optional' order='19.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol' xlink:label='dei_TradingSymbol'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_TradingSymbol' use='optional' order='20.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName' xlink:label='dei_SecurityExchangeName'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_SecurityExchangeName' use='optional' order='21.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityWellKnownSeasonedIssuer' xlink:label='dei_EntityWellKnownSeasonedIssuer'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityWellKnownSeasonedIssuer' use='optional' order='22.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityVoluntaryFilers' xlink:label='dei_EntityVoluntaryFilers'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityVoluntaryFilers' use='optional' order='23.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus' xlink:label='dei_EntityCurrentReportingStatus'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityCurrentReportingStatus' use='optional' order='24.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent' xlink:label='dei_EntityInteractiveDataCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityInteractiveDataCurrent' use='optional' order='25.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory' xlink:label='dei_EntityFilerCategory'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityFilerCategory' use='optional' order='26.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness' xlink:label='dei_EntitySmallBusiness'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntitySmallBusiness' use='optional' order='27.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany' xlink:label='dei_EntityEmergingGrowthCompany'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityEmergingGrowthCompany' use='optional' order='28.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_IcfrAuditorAttestationFlag' xlink:label='dei_IcfrAuditorAttestationFlag'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_IcfrAuditorAttestationFlag' use='optional' order='29.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFinStmtErrorCorrectionFlag' xlink:label='dei_DocumentFinStmtErrorCorrectionFlag'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentFinStmtErrorCorrectionFlag' use='optional' order='30.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany' xlink:label='dei_EntityShellCompany'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityShellCompany' use='optional' order='31.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityPublicFloat' xlink:label='dei_EntityPublicFloat'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityPublicFloat' use='optional' order='32.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding' xlink:label='dei_EntityCommonStockSharesOutstanding'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_EntityCommonStockSharesOutstanding' use='optional' order='33.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag' xlink:label='dei_AmendmentFlag'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_AmendmentFlag' use='optional' order='34.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus' xlink:label='dei_DocumentFiscalYearFocus'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentFiscalYearFocus' use='optional' order='35.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus' xlink:label='dei_DocumentFiscalPeriodFocus'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_DocumentFiscalPeriodFocus' use='optional' order='36.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AuditorName' xlink:label='dei_AuditorName'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_AuditorName' use='optional' order='37.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AuditorFirmId' xlink:label='dei_AuditorFirmId'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_AuditorFirmId' use='optional' order='38.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AuditorLocation' xlink:label='dei_AuditorLocation'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='dei_AuditorLocation' use='optional' order='39.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedBalanceSheets"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract' xlink:label='us-gaap_StatementOfFinancialPositionAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsAbstract' xlink:label='us-gaap_AssetsAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfFinancialPositionAbstract' xlink:to='us-gaap_AssetsAbstract' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract' xlink:label='us-gaap_AssetsCurrentAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsAbstract' xlink:to='us-gaap_AssetsCurrentAbstract' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue' xlink:label='us-gaap_CashAndCashEquivalentsAtCarryingValue'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsCurrentAbstract' xlink:to='us-gaap_CashAndCashEquivalentsAtCarryingValue' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermInvestments' xlink:label='us-gaap_ShortTermInvestments'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsCurrentAbstract' xlink:to='us-gaap_ShortTermInvestments' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:label='us-gaap_AccountsAndOtherReceivablesNetCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsCurrentAbstract' xlink:to='us-gaap_AccountsAndOtherReceivablesNetCurrent' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryPartsAndComponentsNetOfReserves' xlink:label='us-gaap_InventoryPartsAndComponentsNetOfReserves'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsCurrentAbstract' xlink:to='us-gaap_InventoryPartsAndComponentsNetOfReserves' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseCurrent' xlink:label='us-gaap_PrepaidExpenseCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsCurrentAbstract' xlink:to='us-gaap_PrepaidExpenseCurrent' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent' xlink:label='us-gaap_OtherAssetsCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsCurrentAbstract' xlink:to='us-gaap_OtherAssetsCurrent' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms' xlink:label='us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsCurrentAbstract' xlink:to='us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms' use='optional' order='7.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent' xlink:label='us-gaap_AssetsCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsCurrentAbstract' xlink:to='us-gaap_AssetsCurrent' use='optional' order='8.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherInventoryNoncurrent' xlink:label='us-gaap_OtherInventoryNoncurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsAbstract' xlink:to='us-gaap_OtherInventoryNoncurrent' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet' xlink:label='us-gaap_PropertyPlantAndEquipmentNet'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsAbstract' xlink:to='us-gaap_PropertyPlantAndEquipmentNet' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill' xlink:label='us-gaap_IntangibleAssetsNetExcludingGoodwill'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsAbstract' xlink:to='us-gaap_IntangibleAssetsNetExcludingGoodwill' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent' xlink:label='us-gaap_OtherAssetsMiscellaneousNoncurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsAbstract' xlink:to='us-gaap_OtherAssetsMiscellaneousNoncurrent' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent' xlink:label='us-gaap_OtherAssetsNoncurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsAbstract' xlink:to='us-gaap_OtherAssetsNoncurrent' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxAssetsNet' xlink:label='us-gaap_DeferredIncomeTaxAssetsNet'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsAbstract' xlink:to='us-gaap_DeferredIncomeTaxAssetsNet' use='optional' order='7.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets' xlink:label='us-gaap_Assets'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AssetsAbstract' xlink:to='us-gaap_Assets' use='optional' order='8.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract' xlink:label='us-gaap_LiabilitiesAndStockholdersEquityAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfFinancialPositionAbstract' xlink:to='us-gaap_LiabilitiesAndStockholdersEquityAbstract' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract' xlink:label='us-gaap_LiabilitiesCurrentAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_LiabilitiesAndStockholdersEquityAbstract' xlink:to='us-gaap_LiabilitiesCurrentAbstract' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent' xlink:label='us-gaap_AccountsPayableCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_LiabilitiesCurrentAbstract' xlink:to='us-gaap_AccountsPayableCurrent' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesCurrent' xlink:label='us-gaap_AccruedLiabilitiesCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_LiabilitiesCurrentAbstract' xlink:to='us-gaap_AccruedLiabilitiesCurrent' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BillingsInExcessOfCostCurrent' xlink:label='us-gaap_BillingsInExcessOfCostCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_LiabilitiesCurrentAbstract' xlink:to='us-gaap_BillingsInExcessOfCostCurrent' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedIncomeTaxes' xlink:label='us-gaap_AccruedIncomeTaxes'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_LiabilitiesCurrentAbstract' xlink:to='us-gaap_AccruedIncomeTaxes' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent' xlink:label='us-gaap_LiabilitiesCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_LiabilitiesCurrentAbstract' xlink:to='us-gaap_LiabilitiesCurrent' use='optional' order='5.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract' xlink:label='us-gaap_StockholdersEquityAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_LiabilitiesAndStockholdersEquityAbstract' xlink:to='us-gaap_StockholdersEquityAbstract' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue' xlink:label='us-gaap_CommonStockValue'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StockholdersEquityAbstract' xlink:to='us-gaap_CommonStockValue' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital' xlink:label='us-gaap_AdditionalPaidInCapital'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StockholdersEquityAbstract' xlink:to='us-gaap_AdditionalPaidInCapital' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit' xlink:label='us-gaap_RetainedEarningsAccumulatedDeficit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StockholdersEquityAbstract' xlink:to='us-gaap_RetainedEarningsAccumulatedDeficit' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockValue' xlink:label='us-gaap_TreasuryStockValue'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StockholdersEquityAbstract' xlink:to='us-gaap_TreasuryStockValue' use='optional' order='4.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity' xlink:label='us-gaap_StockholdersEquity'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StockholdersEquityAbstract' xlink:to='us-gaap_StockholdersEquity' use='optional' order='5.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity' xlink:label='us-gaap_LiabilitiesAndStockholdersEquity'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_LiabilitiesAndStockholdersEquityAbstract' xlink:to='us-gaap_LiabilitiesAndStockholdersEquity' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedBalanceSheetsParenthetical"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract' xlink:label='us-gaap_StatementOfFinancialPositionAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockParOrStatedValuePerShare' xlink:label='us-gaap_CommonStockParOrStatedValuePerShare'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfFinancialPositionAbstract' xlink:to='us-gaap_CommonStockParOrStatedValuePerShare' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized' xlink:label='us-gaap_CommonStockSharesAuthorized'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfFinancialPositionAbstract' xlink:to='us-gaap_CommonStockSharesAuthorized' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesIssued' xlink:label='us-gaap_CommonStockSharesIssued'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfFinancialPositionAbstract' xlink:to='us-gaap_CommonStockSharesIssued' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding' xlink:label='us-gaap_CommonStockSharesOutstanding'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfFinancialPositionAbstract' xlink:to='us-gaap_CommonStockSharesOutstanding' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockCommonShares' xlink:label='us-gaap_TreasuryStockCommonShares'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfFinancialPositionAbstract' xlink:to='us-gaap_TreasuryStockCommonShares' use='optional' order='5.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedStatementsOfIncome"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract' xlink:label='us-gaap_IncomeStatementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues' xlink:label='us-gaap_Revenues'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_Revenues' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold' xlink:label='us-gaap_CostOfGoodsAndServicesSold'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_CostOfGoodsAndServicesSold' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit' xlink:label='us-gaap_GrossProfit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_GrossProfit' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense' xlink:label='us-gaap_ResearchAndDevelopmentExpense'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_ResearchAndDevelopmentExpense' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingGeneralAndAdministrativeExpense' xlink:label='us-gaap_SellingGeneralAndAdministrativeExpense'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_SellingGeneralAndAdministrativeExpense' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss' xlink:label='us-gaap_OperatingIncomeLoss'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_OperatingIncomeLoss' use='optional' order='6.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonoperatingIncomeExpenseAbstract' xlink:label='us-gaap_NonoperatingIncomeExpenseAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_NonoperatingIncomeExpenseAbstract' use='optional' order='7.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InvestmentIncomeInterest' xlink:label='us-gaap_InvestmentIncomeInterest'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NonoperatingIncomeExpenseAbstract' xlink:to='us-gaap_InvestmentIncomeInterest' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpense' xlink:label='us-gaap_OtherNonoperatingIncomeExpense'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NonoperatingIncomeExpenseAbstract' xlink:to='us-gaap_OtherNonoperatingIncomeExpense' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonoperatingIncomeExpense' xlink:label='us-gaap_NonoperatingIncomeExpense'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NonoperatingIncomeExpenseAbstract' xlink:to='us-gaap_NonoperatingIncomeExpense' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest' xlink:label='us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest' use='optional' order='8.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit' xlink:label='us-gaap_IncomeTaxExpenseBenefit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_IncomeTaxExpenseBenefit' use='optional' order='9.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss' xlink:label='us-gaap_NetIncomeLoss'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_NetIncomeLoss' use='optional' order='10.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic' xlink:label='us-gaap_EarningsPerShareBasic'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_EarningsPerShareBasic' use='optional' order='11.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted' xlink:label='us-gaap_EarningsPerShareDiluted'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeStatementAbstract' xlink:to='us-gaap_EarningsPerShareDiluted' use='optional' order='12.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedStatementsOfStockholdersEquity"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfStockholdersEquityAbstract' xlink:label='us-gaap_StatementOfStockholdersEquityAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfStockholdersEquityAbstract' xlink:to='us-gaap_StatementTable' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis' xlink:label='us-gaap_StatementEquityComponentsAxis'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementEquityComponentsAxis' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain' xlink:label='us-gaap_EquityComponentDomain'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementEquityComponentsAxis' xlink:to='us-gaap_EquityComponentDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember' xlink:label='us-gaap_CommonStockMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementEquityComponentsAxis' xlink:to='us-gaap_CommonStockMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember' xlink:label='us-gaap_AdditionalPaidInCapitalMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementEquityComponentsAxis' xlink:to='us-gaap_AdditionalPaidInCapitalMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember' xlink:label='us-gaap_RetainedEarningsMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementEquityComponentsAxis' xlink:to='us-gaap_RetainedEarningsMember' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockCommonMember' xlink:label='us-gaap_TreasuryStockCommonMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementEquityComponentsAxis' xlink:to='us-gaap_TreasuryStockCommonMember' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementLineItems' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity' xlink:label='us-gaap_StockholdersEquity'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StockholdersEquity' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2003/role/periodStartLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan' xlink:label='us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan' xlink:label='us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity' xlink:label='us-gaap_StockholdersEquity_1'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StockholdersEquity_1' use='optional' order='4.0' preferredLabel='http://www.xbrl.org/2003/role/periodEndLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition' xlink:label='us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss' xlink:label='us-gaap_NetIncomeLoss'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_NetIncomeLoss' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue' xlink:label='us-gaap_StockRepurchasedDuringPeriodValue'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_StockRepurchasedDuringPeriodValue' use='optional' order='7.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_StatementConsolidatedStatementsOfCashFlows"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfCashFlowsAbstract' xlink:label='us-gaap_StatementOfCashFlowsAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract' xlink:label='us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfCashFlowsAbstract' xlink:to='us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss' xlink:label='us-gaap_NetIncomeLoss'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='us-gaap_NetIncomeLoss' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:label='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Depreciation' xlink:label='us-gaap_Depreciation'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='us-gaap_Depreciation' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AcquisitionCosts' xlink:label='us-gaap_AcquisitionCosts'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='us-gaap_AcquisitionCosts' use='optional' order='2.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockOptionPlanExpense' xlink:label='us-gaap_StockOptionPlanExpense'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='us-gaap_StockOptionPlanExpense' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt' xlink:label='us-gaap_GainsLossesOnExtinguishmentOfDebt'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='us-gaap_GainsLossesOnExtinguishmentOfDebt' use='optional' order='4.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GainLossOnCondemnation' xlink:label='us-gaap_GainLossOnCondemnation'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='us-gaap_GainLossOnCondemnation' use='optional' order='5.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxesAndTaxCredits' xlink:label='us-gaap_DeferredIncomeTaxesAndTaxCredits'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='us-gaap_DeferredIncomeTaxesAndTaxCredits' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:label='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' use='optional' order='7.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable' xlink:label='us-gaap_IncreaseDecreaseInAccountsReceivable'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='us-gaap_IncreaseDecreaseInAccountsReceivable' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories' xlink:label='us-gaap_IncreaseDecreaseInInventories'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='us-gaap_IncreaseDecreaseInInventories' use='optional' order='2.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense' xlink:label='us-gaap_IncreaseDecreaseInPrepaidExpense'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='us-gaap_IncreaseDecreaseInPrepaidExpense' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherCurrentAssets' xlink:label='us-gaap_IncreaseDecreaseInOtherCurrentAssets'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='us-gaap_IncreaseDecreaseInOtherCurrentAssets' use='optional' order='4.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities' xlink:label='us-gaap_IncreaseDecreaseInOtherOperatingLiabilities'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='us-gaap_IncreaseDecreaseInOtherOperatingLiabilities' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayableTrade' xlink:label='us-gaap_IncreaseDecreaseInAccountsPayableTrade'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='us-gaap_IncreaseDecreaseInAccountsPayableTrade' use='optional' order='6.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities' xlink:label='us-gaap_IncreaseDecreaseInAccruedLiabilities'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='us-gaap_IncreaseDecreaseInAccruedLiabilities' use='optional' order='7.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings' xlink:label='us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings' use='optional' order='8.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable' xlink:label='us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable' use='optional' order='9.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets' xlink:label='us-gaap_IncreaseDecreaseInOtherOperatingAssets'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncreaseDecreaseInOperatingCapitalAbstract' xlink:to='us-gaap_IncreaseDecreaseInOtherOperatingAssets' use='optional' order='10.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities' xlink:label='us-gaap_NetCashProvidedByUsedInOperatingActivities'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract' xlink:to='us-gaap_NetCashProvidedByUsedInOperatingActivities' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract' xlink:label='us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfCashFlowsAbstract' xlink:to='us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment' xlink:label='us-gaap_PaymentsToAcquirePropertyPlantAndEquipment'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract' xlink:to='us-gaap_PaymentsToAcquirePropertyPlantAndEquipment' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireIntangibleAssets' xlink:label='us-gaap_PaymentsToAcquireIntangibleAssets'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract' xlink:to='us-gaap_PaymentsToAcquireIntangibleAssets' use='optional' order='2.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireOtherInvestments' xlink:label='us-gaap_PaymentsToAcquireOtherInvestments'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract' xlink:to='us-gaap_PaymentsToAcquireOtherInvestments' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForProceedsFromOtherInvestingActivities' xlink:label='us-gaap_PaymentsForProceedsFromOtherInvestingActivities'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract' xlink:to='us-gaap_PaymentsForProceedsFromOtherInvestingActivities' use='optional' order='4.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities' xlink:label='us-gaap_NetCashProvidedByUsedInInvestingActivities'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract' xlink:to='us-gaap_NetCashProvidedByUsedInInvestingActivities' use='optional' order='5.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract' xlink:label='us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfCashFlowsAbstract' xlink:to='us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock' xlink:label='us-gaap_ProceedsFromIssuanceOfCommonStock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract' xlink:to='us-gaap_ProceedsFromIssuanceOfCommonStock' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock' xlink:label='us-gaap_PaymentsForRepurchaseOfCommonStock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract' xlink:to='us-gaap_PaymentsForRepurchaseOfCommonStock' use='optional' order='2.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities' xlink:label='us-gaap_NetCashProvidedByUsedInFinancingActivities'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract' xlink:to='us-gaap_NetCashProvidedByUsedInFinancingActivities' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect' xlink:label='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfCashFlowsAbstract' xlink:to='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect' use='optional' order='4.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents' xlink:label='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfCashFlowsAbstract' xlink:to='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents' use='optional' order='5.0' preferredLabel='http://www.xbrl.org/2003/role/periodStartLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents' xlink:label='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_1'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementOfCashFlowsAbstract' xlink:to='us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_1' use='optional' order='6.0' preferredLabel='http://www.xbrl.org/2003/role/periodEndLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SignificantAccountingPoliciesTextBlock' xlink:label='us-gaap_SignificantAccountingPoliciesTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_SignificantAccountingPoliciesTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure2AccountsAndOtherReceivables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock' xlink:label='us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure3Inventory" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure3Inventory"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure3Inventory">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryDisclosureTextBlock' xlink:label='us-gaap_InventoryDisclosureTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_InventoryDisclosureTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock' xlink:label='us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventory" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure5MaintenanceAndOtherInventory"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventory">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy' xlink:label='us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipment" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure6PropertyAndEquipment"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipment">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock' xlink:label='us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowings" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure7ShortTermBorrowings"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowings">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTextBlock' xlink:label='us-gaap_ShortTermDebtTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_ShortTermDebtTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpenses" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure8AccruedExpenses"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpenses">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock' xlink:label='us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure9Sales" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure9Sales"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure9Sales">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock' xlink:label='us-gaap_RevenueFromContractWithCustomerTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_RevenueFromContractWithCustomerTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxes" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxes"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxes">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureTextBlock' xlink:label='us-gaap_IncomeTaxDisclosureTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_IncomeTaxDisclosureTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShare" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure11EarningsPerCommonShare"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShare">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareTextBlock' xlink:label='us-gaap_EarningsPerShareTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_EarningsPerShareTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlan" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure12EmployeeStockPurchasePlan"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlan">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock' xlink:label='us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlans" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlans"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlans">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock' xlink:label='us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlan" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure14RetirementPlan"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlan">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock' xlink:label='us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure15FairValueOfFinancialInstruments" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure15FairValueOfFinancialInstruments"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure15FairValueOfFinancialInstruments">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresTextBlock' xlink:label='us-gaap_FairValueDisclosuresTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_FairValueDisclosuresTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformation" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure16CashFlowsInformation"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformation">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock' xlink:label='us-gaap_CashFlowSupplementalDisclosuresTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_CashFlowSupplementalDisclosuresTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedings" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure17LegalProceedings"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedings">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureTextBlockAbstract' xlink:label='us-gaap_DisclosureTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LegalMattersAndContingenciesTextBlock' xlink:label='us-gaap_LegalMattersAndContingenciesTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DisclosureTextBlockAbstract' xlink:to='us-gaap_LegalMattersAndContingenciesTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NatureOfOperations' xlink:label='us-gaap_NatureOfOperations'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_NatureOfOperations' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConsolidationPolicyTextBlock' xlink:label='us-gaap_ConsolidationPolicyTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_ConsolidationPolicyTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsPolicyPolicyTextBlock' xlink:label='us-gaap_SubsequentEventsPolicyPolicyTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_SubsequentEventsPolicyPolicyTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UseOfEstimates' xlink:label='us-gaap_UseOfEstimates'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_UseOfEstimates' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock' xlink:label='us-gaap_CashAndCashEquivalentsPolicyTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_CashAndCashEquivalentsPolicyTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock' xlink:label='us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy' xlink:label='us-gaap_TradeAndOtherAccountsReceivablePolicy'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_TradeAndOtherAccountsReceivablePolicy' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryPolicyTextBlock' xlink:label='us-gaap_InventoryPolicyTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_InventoryPolicyTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock' xlink:label='us-gaap_PropertyPlantAndEquipmentPolicyTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_PropertyPlantAndEquipmentPolicyTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock' xlink:label='us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRecognitionPolicyTextBlock' xlink:label='us-gaap_RevenueRecognitionPolicyTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_RevenueRecognitionPolicyTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShippingAndHandlingCostPolicyTextBlock' xlink:label='us-gaap_ShippingAndHandlingCostPolicyTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_ShippingAndHandlingCostPolicyTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxPolicyTextBlock' xlink:label='us-gaap_IncomeTaxPolicyTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_IncomeTaxPolicyTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RegulatoryIncomeTaxesPolicy' xlink:label='us-gaap_RegulatoryIncomeTaxesPolicy'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_RegulatoryIncomeTaxesPolicy' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy' xlink:label='us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PolicyTextBlockAbstract' xlink:label='us-gaap_PolicyTextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock' xlink:label='us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PolicyTextBlockAbstract' xlink:to='us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock' xlink:label='us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure3InventoryScheduleOfInventoryTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfUtilityInventoryTextBlock' xlink:label='us-gaap_ScheduleOfUtilityInventoryTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_ScheduleOfUtilityInventoryTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock' xlink:label='us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock' xlink:label='fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_SchduleOfStatusOfProjectsInProgressTextBlock' xlink:label='fil_SchduleOfStatusOfProjectsInProgressTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='fil_SchduleOfStatusOfProjectsInProgressTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock' xlink:label='fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock' xlink:label='us-gaap_PropertyPlantAndEquipmentTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_PropertyPlantAndEquipmentTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock' xlink:label='us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure9SalesDisaggregationOfSalesRevenueTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock' xlink:label='us-gaap_DisaggregationOfRevenueTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_DisaggregationOfRevenueTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock' xlink:label='us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock' xlink:label='us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock' xlink:label='us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock' xlink:label='us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueOptionTextBlock' xlink:label='us-gaap_FairValueOptionTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_FairValueOptionTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock' xlink:label='us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TableTextBlockSupplementAbstract' xlink:label='us-gaap_TableTextBlockSupplementAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock' xlink:label='us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TableTextBlockSupplementAbstract' xlink:to='us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockOptionPlanExpense' xlink:label='us-gaap_StockOptionPlanExpense'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_StockOptionPlanExpense' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_StatementTable' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis' xlink:label='srt_MajorCustomersAxis'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='srt_MajorCustomersAxis' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain' xlink:label='srt_NameOfMajorCustomerDomain'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='srt_MajorCustomersAxis' xlink:to='srt_NameOfMajorCustomerDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CustomersMember' xlink:label='fil_CustomersMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='srt_MajorCustomersAxis' xlink:to='fil_CustomersMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CustomersRetentionMember' xlink:label='fil_CustomersRetentionMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='srt_MajorCustomersAxis' xlink:to='fil_CustomersRetentionMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementLineItems' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableGrossCurrent' xlink:label='us-gaap_AccountsReceivableGrossCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AccountsReceivableGrossCurrent' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables' xlink:label='us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsAndOtherReceivablesNetCurrent' xlink:label='us-gaap_AccountsAndOtherReceivablesNetCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AccountsAndOtherReceivablesNetCurrent' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure3InventoryScheduleOfInventoryDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_StatementTable' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesInventoryAxis' xlink:label='us-gaap_PublicUtilitiesInventoryAxis'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_PublicUtilitiesInventoryAxis' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesInventoryTypeDomain' xlink:label='us-gaap_PublicUtilitiesInventoryTypeDomain'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PublicUtilitiesInventoryAxis' xlink:to='us-gaap_PublicUtilitiesInventoryTypeDomain' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesInventoryRawMaterialsMember' xlink:label='us-gaap_PublicUtilitiesInventoryRawMaterialsMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PublicUtilitiesInventoryAxis' xlink:to='us-gaap_PublicUtilitiesInventoryRawMaterialsMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_WorkInProcessMember' xlink:label='fil_WorkInProcessMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PublicUtilitiesInventoryAxis' xlink:to='fil_WorkInProcessMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_FinishedGoodsMember' xlink:label='fil_FinishedGoodsMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PublicUtilitiesInventoryAxis' xlink:to='fil_FinishedGoodsMember' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementLineItems' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryGross' xlink:label='us-gaap_InventoryGross'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_InventoryGross' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryAdjustments' xlink:label='us-gaap_InventoryAdjustments'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_InventoryAdjustments' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet' xlink:label='us-gaap_InventoryNet'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_InventoryNet' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContracts' xlink:label='fil_CostsIncurredOnUncompletedContracts'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_CostsIncurredOnUncompletedContracts' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsEstimatedEarnings' xlink:label='fil_CostsIncurredOnUncompletedContractsEstimatedEarnings'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_CostsIncurredOnUncompletedContractsEstimatedEarnings' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsGross' xlink:label='fil_CostsIncurredOnUncompletedContractsGross'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_CostsIncurredOnUncompletedContractsGross' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsBillingsToDate' xlink:label='fil_CostsIncurredOnUncompletedContractsBillingsToDate'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_CostsIncurredOnUncompletedContractsBillingsToDate' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsNet' xlink:label='fil_CostsIncurredOnUncompletedContractsNet'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_CostsIncurredOnUncompletedContractsNet' use='optional' order='5.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsAndEstimatedEarningsInExcessOfBillings' xlink:label='fil_CostsAndEstimatedEarningsInExcessOfBillings'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_CostsAndEstimatedEarningsInExcessOfBillings' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_BillingsInExcessOfCostsAndEstimatedEarnings' xlink:label='fil_BillingsInExcessOfCostsAndEstimatedEarnings'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_BillingsInExcessOfCostsAndEstimatedEarnings' use='optional' order='2.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CostsIncurredOnUncompletedContractsNet' xlink:label='fil_CostsIncurredOnUncompletedContractsNet'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_CostsIncurredOnUncompletedContractsNet' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_NumberOfProjectsInProgress' xlink:label='fil_NumberOfProjectsInProgress'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_NumberOfProjectsInProgress' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AggregatePercentComplete' xlink:label='fil_AggregatePercentComplete'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_AggregatePercentComplete' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AggregateAmountRemaining' xlink:label='fil_AggregateAmountRemaining'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_AggregateAmountRemaining' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_PercentageOfTotalValueInvoicedToCustomer' xlink:label='fil_PercentageOfTotalValueInvoicedToCustomer'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_PercentageOfTotalValueInvoicedToCustomer' use='optional' order='4.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings' xlink:label='fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_MaintenanceAndOtherInventoryGross' xlink:label='fil_MaintenanceAndOtherInventoryGross'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_MaintenanceAndOtherInventoryGross' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_MaintenanceAndOtherInventoryAllowanceForObsolescence' xlink:label='fil_MaintenanceAndOtherInventoryAllowanceForObsolescence'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_MaintenanceAndOtherInventoryAllowanceForObsolescence' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_MaintenanceAndOtherInventoryNet' xlink:label='fil_MaintenanceAndOtherInventoryNet'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_MaintenanceAndOtherInventoryNet' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure5MaintenanceAndOtherInventoryDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_InventoryDisposedOf' xlink:label='fil_InventoryDisposedOf'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_InventoryDisposedOf' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_ProvisionForPotentialInventoryObsolescence' xlink:label='fil_ProvisionForPotentialInventoryObsolescence'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_ProvisionForPotentialInventoryObsolescence' use='optional' order='2.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_StatementTable' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:label='us-gaap_PropertyPlantAndEquipmentByTypeAxis'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_PropertyPlantAndEquipmentByTypeAxis' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain' xlink:label='us-gaap_PropertyPlantAndEquipmentTypeDomain'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:to='us-gaap_PropertyPlantAndEquipmentTypeDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LandMember' xlink:label='us-gaap_LandMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:to='us-gaap_LandMember' use='optional' order='2.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BuildingImprovementsMember' xlink:label='us-gaap_BuildingImprovementsMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:to='us-gaap_BuildingImprovementsMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MachineryAndEquipmentMember' xlink:label='us-gaap_MachineryAndEquipmentMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:to='us-gaap_MachineryAndEquipmentMember' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FurnitureAndFixturesMember' xlink:label='us-gaap_FurnitureAndFixturesMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:to='us-gaap_FurnitureAndFixturesMember' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VehiclesMember' xlink:label='us-gaap_VehiclesMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:to='us-gaap_VehiclesMember' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LandImprovementsMember' xlink:label='us-gaap_LandImprovementsMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_PropertyPlantAndEquipmentByTypeAxis' xlink:to='us-gaap_LandImprovementsMember' use='optional' order='7.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementLineItems' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentGross' xlink:label='us-gaap_PropertyPlantAndEquipmentGross'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_PropertyPlantAndEquipmentGross' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment' xlink:label='us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet' xlink:label='us-gaap_PropertyPlantAndEquipmentNet'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_PropertyPlantAndEquipmentNet' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure6PropertyAndEquipmentDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationDepletionAndAmortization' xlink:label='us-gaap_DepreciationDepletionAndAmortization'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_DepreciationDepletionAndAmortization' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherCommitment' xlink:label='us-gaap_OtherCommitment'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_OtherCommitment' use='optional' order='2.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowingsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure7ShortTermBorrowingsDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowingsDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCredit' xlink:label='us-gaap_LineOfCredit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_LineOfCredit' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityAverageOutstandingAmount' xlink:label='us-gaap_LineOfCreditFacilityAverageOutstandingAmount'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_LineOfCreditFacilityAverageOutstandingAmount' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_OutstandingChecks' xlink:label='fil_OutstandingChecks'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_OutstandingChecks' use='optional' order='3.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_StatementTable' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByLiabilityClassAxis' xlink:label='us-gaap_FairValueByLiabilityClassAxis'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_FairValueByLiabilityClassAxis' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' xlink:label='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_FairValueByLiabilityClassAxis' xlink:to='us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CustomerDepositsMember' xlink:label='fil_CustomerDepositsMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_FairValueByLiabilityClassAxis' xlink:to='fil_CustomerDepositsMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_PersonnelCostsMember' xlink:label='fil_PersonnelCostsMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_FairValueByLiabilityClassAxis' xlink:to='fil_PersonnelCostsMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_OtherMember' xlink:label='fil_OtherMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_FairValueByLiabilityClassAxis' xlink:to='fil_OtherMember' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementLineItems' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesCurrent' xlink:label='us-gaap_AccruedLiabilitiesCurrent'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_AccruedLiabilitiesCurrent' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_StatementTable' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis' xlink:label='us-gaap_StatementBusinessSegmentsAxis'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementBusinessSegmentsAxis' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain' xlink:label='us-gaap_SegmentDomain'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementBusinessSegmentsAxis' xlink:to='us-gaap_SegmentDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_StructuralMember' xlink:label='fil_StructuralMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementBusinessSegmentsAxis' xlink:to='fil_StructuralMember' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AerospaceDefenseMember' xlink:label='fil_AerospaceDefenseMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementBusinessSegmentsAxis' xlink:to='fil_AerospaceDefenseMember' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_IndustrialMember' xlink:label='fil_IndustrialMember'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementBusinessSegmentsAxis' xlink:to='fil_IndustrialMember' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementLineItems' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues' xlink:label='us-gaap_Revenues'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_Revenues' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:label='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentFederalTaxExpenseBenefit' xlink:label='us-gaap_CurrentFederalTaxExpenseBenefit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:to='us-gaap_CurrentFederalTaxExpenseBenefit' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit' xlink:label='us-gaap_CurrentStateAndLocalTaxExpenseBenefit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:to='us-gaap_CurrentStateAndLocalTaxExpenseBenefit' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit' xlink:label='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:to='us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:label='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit' xlink:label='us-gaap_DeferredFederalIncomeTaxExpenseBenefit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:to='us-gaap_DeferredFederalIncomeTaxExpenseBenefit' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit' xlink:label='us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:to='us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit' use='optional' order='2.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit' xlink:label='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract' xlink:to='us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit' xlink:label='us-gaap_IncomeTaxExpenseBenefit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_IncomeTaxExpenseBenefit' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate' xlink:label='us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' xlink:label='us-gaap_IncomeTaxReconciliationTaxCreditsAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch' xlink:label='us-gaap_IncomeTaxReconciliationTaxCreditsResearch'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' xlink:to='us-gaap_IncomeTaxReconciliationTaxCreditsResearch' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsForeign' xlink:label='us-gaap_IncomeTaxReconciliationTaxCreditsForeign'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' xlink:to='us-gaap_IncomeTaxReconciliationTaxCreditsForeign' use='optional' order='2.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_StockOptionCosts' xlink:label='fil_StockOptionCosts'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' xlink:to='fil_StockOptionCosts' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxReconciliationOtherReconcilingItems' xlink:label='us-gaap_IncomeTaxReconciliationOtherReconcilingItems'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' xlink:to='us-gaap_IncomeTaxReconciliationOtherReconcilingItems' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_OtherAdjustments' xlink:label='fil_OtherAdjustments'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' xlink:to='fil_OtherAdjustments' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit' xlink:label='us-gaap_IncomeTaxExpenseBenefit'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_IncomeTaxReconciliationTaxCreditsAbstract' xlink:to='us-gaap_IncomeTaxExpenseBenefit' use='optional' order='6.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations' xlink:label='us-gaap_EffectiveIncomeTaxRateContinuingOperations'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_EffectiveIncomeTaxRateContinuingOperations' use='optional' order='3.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsGrossAbstract' xlink:label='us-gaap_DeferredTaxAssetsGrossAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_DeferredTaxAssetsGrossAbstract' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AllowanceForDoubtfulReceivables' xlink:label='fil_AllowanceForDoubtfulReceivables'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredTaxAssetsGrossAbstract' xlink:to='fil_AllowanceForDoubtfulReceivables' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_TaxInventoryAdjustment' xlink:label='fil_TaxInventoryAdjustment'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredTaxAssetsGrossAbstract' xlink:to='fil_TaxInventoryAdjustment' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AllowanceForObsoleteInventory' xlink:label='fil_AllowanceForObsoleteInventory'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredTaxAssetsGrossAbstract' xlink:to='fil_AllowanceForObsoleteInventory' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AccruedVacation' xlink:label='fil_AccruedVacation'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredTaxAssetsGrossAbstract' xlink:to='fil_AccruedVacation' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_WarrantyReserve' xlink:label='fil_WarrantyReserve'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredTaxAssetsGrossAbstract' xlink:to='fil_WarrantyReserve' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_RDCapitalization' xlink:label='fil_RDCapitalization'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredTaxAssetsGrossAbstract' xlink:to='fil_RDCapitalization' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_StockOptionsIssuedForServices' xlink:label='fil_StockOptionsIssuedForServices'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredTaxAssetsGrossAbstract' xlink:to='fil_StockOptionsIssuedForServices' use='optional' order='7.0' preferredLabel='http://www.xbrl.org/2003/role/terseLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsGross' xlink:label='us-gaap_DeferredTaxAssetsGross'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredTaxAssetsGrossAbstract' xlink:to='us-gaap_DeferredTaxAssetsGross' use='optional' order='8.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxLiabilitiesAbstract' xlink:label='us-gaap_DeferredTaxLiabilitiesAbstract'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_DeferredTaxLiabilitiesAbstract' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_ExcessTaxDepreciation' xlink:label='fil_ExcessTaxDepreciation'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_DeferredTaxLiabilitiesAbstract' xlink:to='fil_ExcessTaxDepreciation' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2009/role/negatedLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsNet' xlink:label='us-gaap_DeferredTaxAssetsNet'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_DeferredTaxAssetsNet' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AverageCommonSharesOutstanding' xlink:label='fil_AverageCommonSharesOutstanding'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_AverageCommonSharesOutstanding' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CommonSharesIssuableUnderStockOptionPlans' xlink:label='fil_CommonSharesIssuableUnderStockOptionPlans'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_CommonSharesIssuableUnderStockOptionPlans' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_AverageCommonSharesOutstandingAssumingDilution' xlink:label='fil_AverageCommonSharesOutstandingAssumingDilution'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_AverageCommonSharesOutstandingAssumingDilution' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/totalLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlanDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure12EmployeeStockPurchasePlanDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlanDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_CommonSharesIssuedToEmployees' xlink:label='fil_CommonSharesIssuedToEmployees'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_CommonSharesIssuedToEmployees' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_SharesReservedForFurtherIssue' xlink:label='fil_SharesReservedForFurtherIssue'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_SharesReservedForFurtherIssue' use='optional' order='2.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1' xlink:label='us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate' use='optional' order='4.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber' use='optional' order='1.0' preferredLabel='http://www.xbrl.org/2003/role/periodStartLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice' use='optional' order='2.0' preferredLabel='http://www.xbrl.org/2003/role/periodStartLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue' use='optional' order='3.0' preferredLabel='http://www.xbrl.org/2003/role/periodStartLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice' xlink:label='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised' xlink:label='us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice' xlink:label='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice' use='optional' order='7.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod' use='optional' order='8.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice' xlink:label='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice' use='optional' order='9.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_1'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_1' use='optional' order='10.0' preferredLabel='http://www.xbrl.org/2003/role/periodEndLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_1'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_1' use='optional' order='11.0' preferredLabel='http://www.xbrl.org/2003/role/periodEndLabel'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue' xlink:label='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_1'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_1' use='optional' order='12.0' preferredLabel='http://www.xbrl.org/2003/role/periodEndLabel'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable' xlink:label='us-gaap_StatementTable'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_StatementTable' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:label='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' xlink:label='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N90110001Member' xlink:label='fil_N90110001Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N90110001Member' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N100111001Member' xlink:label='fil_N100111001Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N100111001Member' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N110112001Member' xlink:label='fil_N110112001Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N110112001Member' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N120113001Member' xlink:label='fil_N120113001Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N120113001Member' use='optional' order='5.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N130114001Member' xlink:label='fil_N130114001Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N130114001Member' use='optional' order='6.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N160117001Member' xlink:label='fil_N160117001Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N160117001Member' use='optional' order='7.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N190120001Member' xlink:label='fil_N190120001Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N190120001Member' use='optional' order='8.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N20012100Member' xlink:label='fil_N20012100Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N20012100Member' use='optional' order='9.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N30013100Member' xlink:label='fil_N30013100Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N30013100Member' use='optional' order='10.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N43014400Member' xlink:label='fil_N43014400Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N43014400Member' use='optional' order='11.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N46014700Member' xlink:label='fil_N46014700Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N46014700Member' use='optional' order='12.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_N9014700Member' xlink:label='fil_N9014700Member'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis' xlink:to='fil_N9014700Member' use='optional' order='13.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems' xlink:label='us-gaap_StatementLineItems'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementTable' xlink:to='us-gaap_StatementLineItems' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions' xlink:label='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2' xlink:label='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1' xlink:label='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_StatementLineItems' xlink:to='us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1' use='optional' order='3.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlanDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure14RetirementPlanDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlanDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PensionAndOtherPostretirementBenefitExpense' xlink:label='us-gaap_PensionAndOtherPostretirementBenefitExpense'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_PensionAndOtherPostretirementBenefitExpense' use='optional' order='1.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestPaid' xlink:label='us-gaap_InterestPaid'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_InterestPaid' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxesPaidNet' xlink:label='us-gaap_IncomeTaxesPaidNet'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_IncomeTaxesPaidNet' use='optional' order='2.0'/>
	</link:presentationLink>
	<link:roleRef roleURI="http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails" xlink:type="simple" xlink:href="tayd-20250531.xsd#idr_Disclosure17LegalProceedingsDetails"/>
	<link:presentationLink xlink:type="extended" xlink:role="http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails">
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TextBlockAbstract' xlink:label='us-gaap_TextBlockAbstract'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation' xlink:label='us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation' use='optional' order='1.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyNameOfPlaintiff' xlink:label='us-gaap_LossContingencyNameOfPlaintiff'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_LossContingencyNameOfPlaintiff' use='optional' order='2.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyLawsuitFilingDate1' xlink:label='us-gaap_LossContingencyLawsuitFilingDate1'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_LossContingencyLawsuitFilingDate1' use='optional' order='3.0'/>
		<link:loc xlink:type='locator' xlink:href='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyAllegations' xlink:label='us-gaap_LossContingencyAllegations'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='us-gaap_LossContingencyAllegations' use='optional' order='4.0'/>
		<link:loc xlink:type='locator' xlink:href='tayd-20250531.xsd#fil_LossContingencyInestimableLoss2' xlink:label='fil_LossContingencyInestimableLoss2'/>
		<link:presentationArc xlink:type='arc' xlink:arcrole='http://www.xbrl.org/2003/arcrole/parent-child' xlink:from='us-gaap_TextBlockAbstract' xlink:to='fil_LossContingencyInestimableLoss2' use='optional' order='5.0'/>
	</link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>12
<FILENAME>tayd-20250531.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version='1.0' encoding='iso-8859-1'?>
<!-- Produced by edgar-services.com using EDGARsuite software, Advanced Computer Innovations, Inc., Copyright (C) 2008-2025 [PPWGG7LDR1F0VA3WEKVX]. www.edgarsuite.com -->
<schema attributeFormDefault='unqualified' elementFormDefault='qualified' targetNamespace='http://taylordevices.com/20250531' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:xbrli='http://www.xbrl.org/2003/instance' xmlns:fil='http://taylordevices.com/20250531' xmlns:link='http://www.xbrl.org/2003/linkbase' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xbrldi='http://xbrl.org/2006/xbrldi' xmlns:xbrldt='http://xbrl.org/2005/xbrldt' xmlns:dei='http://xbrl.sec.gov/dei/2025' xmlns:dtr-types='http://www.xbrl.org/dtr/type/2024-01-31' xmlns:srt='http://fasb.org/srt/2025' xmlns:us-gaap='http://fasb.org/us-gaap/2025'>
	<annotation>
		<appinfo>
			<link:linkbaseRef xlink:type="simple" xlink:href="tayd-20250531_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="tayd-20250531_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="tayd-20250531_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/>
			<link:linkbaseRef xlink:type="simple" xlink:href="tayd-20250531_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" id="idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails">
				<link:definition>000730 - Disclosure - 10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails" id="idr_Disclosure3InventoryScheduleOfInventoryDetails">
				<link:definition>000590 - Disclosure - 3. Inventory: Schedule of Inventory (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies">
				<link:definition>000380 - Disclosure - 1. Summary of Significant Accounting Policies: Stock-Based Compensation (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails" id="idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails">
				<link:definition>000620 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPolicies">
				<link:definition>000070 - Disclosure - 1. Summary of Significant Accounting Policies</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables" id="idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables">
				<link:definition>000400 - Disclosure - 2. Accounts and Other Receivables: Accounts and Other Receivables (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies">
				<link:definition>000350 - Disclosure - 1. Summary of Significant Accounting Policies: Shipping and Handling Costs (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables" id="idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables">
				<link:definition>000500 - Disclosure - 10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables" id="idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables">
				<link:definition>000490 - Disclosure - 10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets" id="idr_StatementConsolidatedBalanceSheets">
				<link:definition>000020 - Statement - Consolidated Balance Sheets</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlan" id="idr_Disclosure14RetirementPlan">
				<link:definition>000200 - Disclosure - 14. Retirement Plan</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies">
				<link:definition>000260 - Disclosure - 1. Summary of Significant Accounting Policies: Subsequent Events (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies">
				<link:definition>000300 - Disclosure - 1. Summary of Significant Accounting Policies: Accounts and Other Receivables (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails" id="idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails">
				<link:definition>000720 - Disclosure - 10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables" id="idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables">
				<link:definition>000530 - Disclosure - 13. Stock Option Plans: Schedule of Fair Value Assumptions (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentDetails" id="idr_Disclosure6PropertyAndEquipmentDetails">
				<link:definition>000670 - Disclosure - 6. Property and Equipment (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies">
				<link:definition>000290 - Disclosure - 1. Summary of Significant Accounting Policies: Short-Term Investments (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails" id="idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails">
				<link:definition>000640 - Disclosure - 5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails" id="idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails">
				<link:definition>000630 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables" id="idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables">
				<link:definition>000460 - Disclosure - 6. Property and Equipment: Schedule of Property, Plant and Equipment (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowingsDetails" id="idr_Disclosure7ShortTermBorrowingsDetails">
				<link:definition>000680 - Disclosure - 7. Short-Term Borrowings (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivables" id="idr_Disclosure2AccountsAndOtherReceivables">
				<link:definition>000080 - Disclosure - 2. Accounts and Other Receivables</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShare" id="idr_Disclosure11EarningsPerCommonShare">
				<link:definition>000170 - Disclosure - 11. Earnings Per Common Share</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables" id="idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables">
				<link:definition>000540 - Disclosure - 13. Stock Option Plans: Schedule of Stock Options Activity (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails" id="idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails">
				<link:definition>000710 - Disclosure - 10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryTables" id="idr_Disclosure3InventoryScheduleOfInventoryTables">
				<link:definition>000410 - Disclosure - 3. Inventory: Schedule of Inventory (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables" id="idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables">
				<link:definition>000550 - Disclosure - 13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails" id="idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails">
				<link:definition>000760 - Disclosure - 13. Stock Option Plans: Schedule of Fair Value Assumptions (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies">
				<link:definition>000370 - Disclosure - 1. Summary of Significant Accounting Policies: Sales Taxes (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails" id="idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails">
				<link:definition>000770 - Disclosure - 13. Stock Option Plans: Schedule of Stock Options Activity (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure3Inventory" id="idr_Disclosure3Inventory">
				<link:definition>000090 - Disclosure - 3. Inventory</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails" id="idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails">
				<link:definition>000800 - Disclosure - 16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails">
				<link:definition>000570 - Disclosure - 1. Summary of Significant Accounting Policies: Stock-Based Compensation (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlanDetails" id="idr_Disclosure14RetirementPlanDetails">
				<link:definition>000790 - Disclosure - 14. Retirement Plan (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies">
				<link:definition>000280 - Disclosure - 1. Summary of Significant Accounting Policies: Cash and Cash Equivalents (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryDetails" id="idr_Disclosure5MaintenanceAndOtherInventoryDetails">
				<link:definition>000650 - Disclosure - 5. Maintenance and Other Inventory (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails" id="idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails">
				<link:definition>000580 - Disclosure - 2. Accounts and Other Receivables: Accounts and Other Receivables (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies">
				<link:definition>000250 - Disclosure - 1. Summary of Significant Accounting Policies: Principles of Consolidation (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables" id="idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables">
				<link:definition>000420 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventory" id="idr_Disclosure5MaintenanceAndOtherInventory">
				<link:definition>000110 - Disclosure - 5. Maintenance and Other Inventory</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails" id="idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails">
				<link:definition>000610 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies">
				<link:definition>000310 - Disclosure - 1. Summary of Significant Accounting Policies: Inventory (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedings" id="idr_Disclosure17LegalProceedings">
				<link:definition>000230 - Disclosure - 17. Legal Proceedings</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables" id="idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables">
				<link:definition>000450 - Disclosure - 5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables" id="idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables">
				<link:definition>000440 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails" id="idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails">
				<link:definition>000700 - Disclosure - 9. Sales: Disaggregation of Sales Revenue (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxes" id="idr_Disclosure10IncomeTaxes">
				<link:definition>000160 - Disclosure - 10. Income Taxes</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails" id="idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails">
				<link:definition>000780 - Disclosure - 13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies">
				<link:definition>000360 - Disclosure - 1. Summary of Significant Accounting Policies: Income Taxes (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation" id="idr_DocumentDocumentAndEntityInformation">
				<link:definition>000010 - Document - Document and Entity Information</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlans" id="idr_Disclosure13StockOptionPlans">
				<link:definition>000190 - Disclosure - 13. Stock Option Plans</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows" id="idr_StatementConsolidatedStatementsOfCashFlows">
				<link:definition>000060 - Statement - Consolidated Statements of Cash Flows</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts" id="idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts">
				<link:definition>000100 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails" id="idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails">
				<link:definition>000660 - Disclosure - 6. Property and Equipment: Schedule of Property, Plant and Equipment (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlan" id="idr_Disclosure12EmployeeStockPurchasePlan">
				<link:definition>000180 - Disclosure - 12. Employee Stock Purchase Plan</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical" id="idr_StatementConsolidatedBalanceSheetsParenthetical">
				<link:definition>000030 - Statement - Consolidated Balance Sheets - Parenthetical</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails" id="idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails">
				<link:definition>000690 - Disclosure - 8. Accrued Expenses: Schedule of Accrued Expenses (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure9Sales" id="idr_Disclosure9Sales">
				<link:definition>000150 - Disclosure - 9. Sales</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables" id="idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables">
				<link:definition>000510 - Disclosure - 10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity" id="idr_StatementConsolidatedStatementsOfStockholdersEquity">
				<link:definition>000050 - Statement - Consolidated Statements of Stockholders&apos; Equity</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies">
				<link:definition>000240 - Disclosure - 1. Summary of Significant Accounting Policies: Nature of Operations (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure15FairValueOfFinancialInstruments" id="idr_Disclosure15FairValueOfFinancialInstruments">
				<link:definition>000210 - Disclosure - 15. Fair Value of Financial Instruments</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowings" id="idr_Disclosure7ShortTermBorrowings">
				<link:definition>000130 - Disclosure - 7. Short-Term Borrowings</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails" id="idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails">
				<link:definition>000600 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueTables" id="idr_Disclosure9SalesDisaggregationOfSalesRevenueTables">
				<link:definition>000480 - Disclosure - 9. Sales: Disaggregation of Sales Revenue (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies">
				<link:definition>000320 - Disclosure - 1. Summary of Significant Accounting Policies: Property and Equipment (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformation" id="idr_Disclosure16CashFlowsInformation">
				<link:definition>000220 - Disclosure - 16. Cash Flows Information</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome" id="idr_StatementConsolidatedStatementsOfIncome">
				<link:definition>000040 - Statement - Consolidated Statements of Income</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables" id="idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables">
				<link:definition>000520 - Disclosure - 11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables" id="idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables">
				<link:definition>000430 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlanDetails" id="idr_Disclosure12EmployeeStockPurchasePlanDetails">
				<link:definition>000750 - Disclosure - 12. Employee Stock Purchase Plan (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails" id="idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails">
				<link:definition>000740 - Disclosure - 11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipment" id="idr_Disclosure6PropertyAndEquipment">
				<link:definition>000120 - Disclosure - 6. Property and Equipment</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies">
				<link:definition>000340 - Disclosure - 1. Summary of Significant Accounting Policies: Revenue Recognition (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails" id="idr_Disclosure17LegalProceedingsDetails">
				<link:definition>000810 - Disclosure - 17. Legal Proceedings (Details)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables" id="idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables">
				<link:definition>000470 - Disclosure - 8. Accrued Expenses: Schedule of Accrued Expenses (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies">
				<link:definition>000330 - Disclosure - 1. Summary of Significant Accounting Policies: Cash Value of Life Insurance (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables" id="idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables">
				<link:definition>000560 - Disclosure - 16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Tables)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies">
				<link:definition>000270 - Disclosure - 1. Summary of Significant Accounting Policies: Use of Estimates (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpenses" id="idr_Disclosure8AccruedExpenses">
				<link:definition>000140 - Disclosure - 8. Accrued Expenses</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
			<link:roleType roleURI="http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies" id="idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies">
				<link:definition>000390 - Disclosure - 1. Summary of Significant Accounting Policies: New Accounting Standards (Policies)</link:definition>
				<link:usedOn>link:presentationLink</link:usedOn>
				<link:usedOn>link:definitionLink</link:usedOn>
				<link:usedOn>link:calculationLink</link:usedOn>
			</link:roleType>
		</appinfo>
	</annotation>
	<import schemaLocation='https://www.xbrl.org/dtr/type/2024-01-31/types.xsd' namespace='http://www.xbrl.org/dtr/type/2024-01-31'/>
	<import schemaLocation='http://www.xbrl.org/2005/xbrldt-2005.xsd' namespace='http://xbrl.org/2005/xbrldt'/>
	<import schemaLocation='http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd' namespace='http://www.xbrl.org/2003/instance'/>
	<import schemaLocation='https://xbrl.sec.gov/dei/2025/dei-2025.xsd' namespace='http://xbrl.sec.gov/dei/2025'/>
	<import schemaLocation='https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd' namespace='http://fasb.org/srt/2025'/>
	<import schemaLocation='https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd' namespace='http://fasb.org/us-gaap/2025'/>
	<element nillable='true' type='dtr-types:textBlockItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock' name='ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock'/>
	<element nillable='true' type='dtr-types:textBlockItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_SchduleOfStatusOfProjectsInProgressTextBlock' name='SchduleOfStatusOfProjectsInProgressTextBlock'/>
	<element nillable='true' type='dtr-types:textBlockItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock' name='ScheduleOfMaintenanceAndOtherInventoryTextBlock'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_CustomersMember' name='CustomersMember'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_CustomersRetentionMember' name='CustomersRetentionMember'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_WorkInProcessMember' name='WorkInProcessMember'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_FinishedGoodsMember' name='FinishedGoodsMember'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='debit' id='fil_CostsIncurredOnUncompletedContracts' name='CostsIncurredOnUncompletedContracts'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='debit' id='fil_CostsIncurredOnUncompletedContractsGross' name='CostsIncurredOnUncompletedContractsGross'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='debit' id='fil_CostsIncurredOnUncompletedContractsNet' name='CostsIncurredOnUncompletedContractsNet'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='credit' id='fil_CostsIncurredOnUncompletedContractsBillingsToDate' name='CostsIncurredOnUncompletedContractsBillingsToDate'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='debit' id='fil_CostsIncurredOnUncompletedContractsEstimatedEarnings' name='CostsIncurredOnUncompletedContractsEstimatedEarnings'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='debit' id='fil_CostsAndEstimatedEarningsInExcessOfBillings' name='CostsAndEstimatedEarningsInExcessOfBillings'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='debit' id='fil_BillingsInExcessOfCostsAndEstimatedEarnings' name='BillingsInExcessOfCostsAndEstimatedEarnings'/>
	<element nillable='true' type='xbrli:decimalItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' id='fil_NumberOfProjectsInProgress' name='NumberOfProjectsInProgress'/>
	<element nillable='true' type='dtr-types:percentItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' id='fil_AggregatePercentComplete' name='AggregatePercentComplete'/>
	<element nillable='true' type='dtr-types:percentItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' id='fil_PercentageOfTotalValueInvoicedToCustomer' name='PercentageOfTotalValueInvoicedToCustomer'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='debit' id='fil_AggregateAmountRemaining' name='AggregateAmountRemaining'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='credit' id='fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings' name='RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='debit' id='fil_MaintenanceAndOtherInventoryGross' name='MaintenanceAndOtherInventoryGross'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='debit' id='fil_MaintenanceAndOtherInventoryNet' name='MaintenanceAndOtherInventoryNet'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='credit' id='fil_MaintenanceAndOtherInventoryAllowanceForObsolescence' name='MaintenanceAndOtherInventoryAllowanceForObsolescence'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='credit' id='fil_InventoryDisposedOf' name='InventoryDisposedOf'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='debit' id='fil_ProvisionForPotentialInventoryObsolescence' name='ProvisionForPotentialInventoryObsolescence'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='credit' id='fil_OutstandingChecks' name='OutstandingChecks'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_CustomerDepositsMember' name='CustomerDepositsMember'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_PersonnelCostsMember' name='PersonnelCostsMember'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_OtherMember' name='OtherMember'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_StructuralMember' name='StructuralMember'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_AerospaceDefenseMember' name='AerospaceDefenseMember'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_IndustrialMember' name='IndustrialMember'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='debit' id='fil_AllowanceForDoubtfulReceivables' name='AllowanceForDoubtfulReceivables'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='debit' id='fil_TaxInventoryAdjustment' name='TaxInventoryAdjustment'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='debit' id='fil_AllowanceForObsoleteInventory' name='AllowanceForObsoleteInventory'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='debit' id='fil_AccruedVacation' name='AccruedVacation'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='debit' id='fil_WarrantyReserve' name='WarrantyReserve'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='debit' id='fil_RDCapitalization' name='RDCapitalization'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='debit' id='fil_StockOptionsIssuedForServices' name='StockOptionsIssuedForServices'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' xbrli:balance='credit' id='fil_ExcessTaxDepreciation' name='ExcessTaxDepreciation'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='debit' id='fil_OtherAdjustments' name='OtherAdjustments'/>
	<element nillable='true' type='xbrli:sharesItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_AverageCommonSharesOutstanding' name='AverageCommonSharesOutstanding'/>
	<element nillable='true' type='xbrli:sharesItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_CommonSharesIssuableUnderStockOptionPlans' name='CommonSharesIssuableUnderStockOptionPlans'/>
	<element nillable='true' type='xbrli:sharesItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_AverageCommonSharesOutstandingAssumingDilution' name='AverageCommonSharesOutstandingAssumingDilution'/>
	<element nillable='true' type='xbrli:sharesItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_CommonSharesIssuedToEmployees' name='CommonSharesIssuedToEmployees'/>
	<element nillable='true' type='xbrli:sharesItemType' substitutionGroup='xbrli:item' xbrli:periodType='instant' id='fil_SharesReservedForFurtherIssue' name='SharesReservedForFurtherIssue'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N90110001Member' name='N90110001Member'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N100111001Member' name='N100111001Member'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N110112001Member' name='N110112001Member'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N120113001Member' name='N120113001Member'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N130114001Member' name='N130114001Member'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N160117001Member' name='N160117001Member'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N190120001Member' name='N190120001Member'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N20012100Member' name='N20012100Member'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N46014700Member' name='N46014700Member'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N9014700Member' name='N9014700Member'/>
	<element nillable='true' type='xbrli:stringItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_LossContingencyInestimableLoss2' name='LossContingencyInestimableLoss2'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N30013100Member' name='N30013100Member'/>
	<element abstract='true' nillable='true' type='dtr-types:domainItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' id='fil_N43014400Member' name='N43014400Member'/>
	<element nillable='true' type='xbrli:monetaryItemType' substitutionGroup='xbrli:item' xbrli:periodType='duration' xbrli:balance='debit' id='fil_StockOptionCosts' name='StockOptionCosts'/>
</schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document and Entity Information - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>Nov. 30, 2024</div></th>
<th class="th"><div>Aug. 15, 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_EntityCentralIndexKey', window );">Registrant CIK</a></td>
<td class="text">0000096536<span></span>
</td>
<td class="text">&#160;<span></span>
</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_CurrentFiscalYearEndDate', window );">Fiscal Year End</a></td>
<td class="text">--05-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<span></span>
</td>
<td class="text">&#160;<span></span>
</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_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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">May 31,  2025<span></span>
</td>
<td class="text">&#160;<span></span>
</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_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">000-3498<span></span>
</td>
<td class="text">&#160;<span></span>
</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">TAYLOR DEVICES, INC.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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 or Country Code</a></td>
<td class="text">NY<span></span>
</td>
<td class="text">&#160;<span></span>
</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_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">16-0797789<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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 One</a></td>
<td class="text">90 Taylor Drive<span></span>
</td>
<td class="text">&#160;<span></span>
</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_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">North Tonawanda<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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">NY<span></span>
</td>
<td class="text">&#160;<span></span>
</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_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">14120<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_EntityAddressAddressDescription', window );">Entity Address, Address Description</a></td>
<td class="text">Address of principal executive offices<span></span>
</td>
<td class="text">&#160;<span></span>
</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_PhoneFaxNumberDescription', window );">Phone Fax Number Description</a></td>
<td class="text">Registrant's telephone number, including area code<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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">716<span></span>
</td>
<td class="text">&#160;<span></span>
</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_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">694-0800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</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_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</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_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Non-accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</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_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</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_IcfrAuditorAttestationFlag', window );">ICFR Auditor Attestation Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_DocumentFinStmtErrorCorrectionFlag', window );">Document Financial Statement Error Correction</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</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_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 150,789,000<span></span>
</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_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,147,193<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>
<td class="text">&#160;<span></span>
</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_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<span></span>
</td>
<td class="text">&#160;<span></span>
</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_AuditorName', window );">Auditor Name</a></td>
<td class="text">Lumsden &amp; McCormick, LLP<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_AuditorFirmId', window );">Auditor Firm ID</a></td>
<td class="text">130<span></span>
</td>
<td class="text">&#160;<span></span>
</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_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">Buffalo, New York<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_CommonClassAMember', window );">Common Class A</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock, $.025 par value per share<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">TAYD<span></span>
</td>
<td class="text">&#160;<span></span>
</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_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Series A Preferred Stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Preferred Stock Purchase Rights<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_AuditorFirmId">
<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>PCAOB issued Audit Firm Identifier</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 Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_AuditorFirmId</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:nonemptySequenceNumberItemType</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_AuditorLocation">
<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 );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_AuditorLocation</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:internationalNameItemType</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_AuditorName">
<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 );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_AuditorName</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:internationalNameItemType</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_CurrentFiscalYearEndDate">
<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>End date of current fiscal year in the format --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_CurrentFiscalYearEndDate</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:gMonthDayItemType</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_DocumentAnnualReport">
<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 only for a form used as an annual report.</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 Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_DocumentAnnualReport</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_DocumentFinStmtErrorCorrectionFlag">
<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>Indicates whether any of the financial statement period in the filing include a restatement due to error correction.</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 Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection w<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 4: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_DocumentFinStmtErrorCorrectionFlag</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_DocumentFiscalPeriodFocus">
<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>Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</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_DocumentFiscalPeriodFocus</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:fiscalPeriodItemType</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_DocumentFiscalYearFocus">
<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>This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</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_DocumentFiscalYearFocus</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:gYearItemType</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_DocumentTransitionReport">
<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 only for a form used as a transition report.</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 Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-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_DocumentTransitionReport</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_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_EntityAddressAddressDescription">
<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>Description of the kind of address for the entity, if needed to distinguish more finely among mailing, principal, legal, accounting, contact or other addresses.</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_EntityAddressAddressDescription</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_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_EntityCommonStockSharesOutstanding">
<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 number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</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_EntityCommonStockSharesOutstanding</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:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<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 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</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_EntityCurrentReportingStatus</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:yesNoItemType</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_EntityFilerCategory">
<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 whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.</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_EntityFilerCategory</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:filerCategoryItemType</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_EntityInteractiveDataCurrent">
<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 registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</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 Regulation S-T<br> -Number 232<br> -Section 405<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_EntityInteractiveDataCurrent</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:yesNoItemType</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_EntityPublicFloat">
<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 aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.</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_EntityPublicFloat</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:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_EntityShellCompany">
<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 registrant is a shell company as defined in Rule 12b-2 of 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 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_EntityShellCompany</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_EntitySmallBusiness">
<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>Indicates that the company is a Smaller Reporting Company (SRC).</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_EntitySmallBusiness</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_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_EntityVoluntaryFilers">
<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 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</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_EntityVoluntaryFilers</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:yesNoItemType</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_EntityWellKnownSeasonedIssuer">
<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 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.</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 405<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_EntityWellKnownSeasonedIssuer</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:yesNoItemType</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_IcfrAuditorAttestationFlag">
<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 );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_IcfrAuditorAttestationFlag</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_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_PhoneFaxNumberDescription">
<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>Description of Phone or Fax Number</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_PhoneFaxNumberDescription</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_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_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_us-gaap_StatementClassOfStockAxis=us-gaap_CommonClassAMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=us-gaap_CommonClassAMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R2.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets - USD ($)<br></strong></div></th>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</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_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1,190,656<span></span>
</td>
<td class="nump">$ 2,831,471<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_us-gaap_ShortTermInvestments', window );">Short-term investments</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">34,799,367<span></span>
</td>
<td class="nump">28,131,279<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_us-gaap_AccountsAndOtherReceivablesNetCurrent', window );">Accounts and other receivables, net (Note 2)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">5,599,785<span></span>
</td>
<td class="nump">5,212,408<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_us-gaap_InventoryPartsAndComponentsNetOfReserves', window );">Inventory (Note 3)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="nump">8,113,321<span></span>
</td>
<td class="nump">7,512,052<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_us-gaap_PrepaidExpenseCurrent', window );">Prepaid expenses</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,124,878<span></span>
</td>
<td class="nump">725,506<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_us-gaap_OtherAssetsCurrent', window );">Prepaid income taxes</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">94,333<span></span>
</td>
<td class="nump">0<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_us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms', window );">Costs and estimated earnings in excess of billings (Note 4)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">5,360,499<span></span>
</td>
<td class="nump">4,356,565<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">56,282,839<span></span>
</td>
<td class="nump">48,769,281<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_us-gaap_OtherInventoryNoncurrent', window );">Maintenance and other inventory, net (Note 5)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[4]</sup></td>
<td class="nump">1,107,875<span></span>
</td>
<td class="nump">1,579,829<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_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net (Note 6)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[5]</sup></td>
<td class="nump">12,074,172<span></span>
</td>
<td class="nump">11,180,933<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_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Patents, net</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">270,370<span></span>
</td>
<td class="nump">292,593<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_us-gaap_OtherAssetsMiscellaneousNoncurrent', window );">Cash value of life insurance, net</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">219,444<span></span>
</td>
<td class="nump">214,824<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_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">65,420<span></span>
</td>
<td class="nump">27,343<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_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred income taxes (Note 10)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[6]</sup></td>
<td class="nump">1,598,000<span></span>
</td>
<td class="nump">1,012,615<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">71,618,120<span></span>
</td>
<td class="nump">63,077,418<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_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</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_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,119,240<span></span>
</td>
<td class="nump">1,438,847<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_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses (Note 8)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[7]</sup></td>
<td class="nump">4,072,436<span></span>
</td>
<td class="nump">4,664,463<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_us-gaap_BillingsInExcessOfCostCurrent', window );">Billings in excess of costs and estimated earnings (Note 4)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">4,382,067<span></span>
</td>
<td class="nump">5,601,274<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_us-gaap_AccruedIncomeTaxes', window );">Accrued income taxes</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="nump">126,148<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">9,573,743<span></span>
</td>
<td class="nump">11,830,732<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_us-gaap_StockholdersEquityAbstract', window );"><strong>Stockholders' Equity</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</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_us-gaap_CommonStockValue', window );">Common Stock, Value</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">104,835<span></span>
</td>
<td class="nump">104,056<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_us-gaap_AdditionalPaidInCapital', window );">Paid-in capital</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">14,544,580<span></span>
</td>
<td class="nump">12,959,531<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_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">60,540,154<span></span>
</td>
<td class="nump">51,127,018<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_us-gaap_TreasuryStockValue', window );">Treasury stock - 1,051,688 and 1,046,742 shares at cost</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(13,145,192)<span></span>
</td>
<td class="num">(12,943,919)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total stockholders' equity</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">62,044,377<span></span>
</td>
<td class="nump">51,246,686<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Liabilities and Equity</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 71,618,120<span></span>
</td>
<td class="nump">$ 63,077,418<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%">
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Note 2</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[2]</td>
<td style="vertical-align: top;" valign="top">Note 3</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[3]</td>
<td style="vertical-align: top;" valign="top">Note 4Note 4</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[4]</td>
<td style="vertical-align: top;" valign="top">Note 5</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[5]</td>
<td style="vertical-align: top;" valign="top">Note 6</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[6]</td>
<td style="vertical-align: top;" valign="top">Note 10Note 10</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[7]</td>
<td style="vertical-align: top;" valign="top">Note 8</td>
</tr>
</table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsAndOtherReceivablesNetCurrent">
<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>Amount, after allowance, receivable from customers, clients, or other third-parties, and receivables classified as other due within one year or the normal operating cycle, if longer.</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;">us-gaap_AccountsAndOtherReceivablesNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<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>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<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;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedIncomeTaxes">
<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>Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due. This amount is the total of current and noncurrent accrued income taxes.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-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;">us-gaap_AccruedIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<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>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapital">
<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>Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.</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/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_AdditionalPaidInCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<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>Amount of asset recognized for present right to economic benefit.</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/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 19: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 20: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 35: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-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;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<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>Amount of asset recognized for present right to economic benefit, classified as current.</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/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<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;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<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 );">- References</a><div><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;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_BillingsInExcessOfCostCurrent">
<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>Liability attributable to (i) billings in excess of costs under the percentage of completion contract accounting method representing the difference between contractually invoiced amounts (billings) and revenue recognized based, for example, on costs incurred to estimated total costs at period end or (ii) contractually invoiced amounts (billings) in excess of costs incurred and accumulated under the completed contract accounting method that are expected to be realized within one year or one operating cycle, whichever is longer, from the reporting date.</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;">us-gaap_BillingsInExcessOfCostCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<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>Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</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/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<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;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<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>Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</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/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (01)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-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;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms">
<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>Amount of receivable reflecting the cost incurred on uncompleted contracts in excess of related billings.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(c)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(c)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(c)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478345/912-310-45-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;">us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxAssetsNet">
<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>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.</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/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-6<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;">us-gaap_DeferredIncomeTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<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>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-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;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPartsAndComponentsNetOfReserves">
<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>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date for elements of machinery or equipment held for the purpose of replacing similar parts in the course of repair or maintenance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_InventoryPartsAndComponentsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<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>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<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>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</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/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-5<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<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;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<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 );">- References</a><div><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;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_OtherAssetsCurrent">
<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>Amount of current assets classified as other.</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/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_OtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsMiscellaneousNoncurrent">
<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>Amount of other miscellaneous assets expected to be realized or consumed after one year or normal operating cycle, if longer.</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;">us-gaap_OtherAssetsMiscellaneousNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<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>Amount of noncurrent assets classified as other.</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/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherInventoryNoncurrent">
<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>Carrying amount as of the balance sheet date of inventories not expected to be converted to cash, sold or exchanged within the normal operating cycle (such as inventory related to long-term contracts or program rights).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_OtherInventoryNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseCurrent">
<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>Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.</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/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482955/340-10-05-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483032/340-10-45-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;">us-gaap_PrepaidExpenseCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<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>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-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;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<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>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-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;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShortTermInvestments">
<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>Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_ShortTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<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>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-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;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<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 );">- References</a><div><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;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_TreasuryStockValue">
<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 amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481520/505-30-50-4<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481549/505-30-45-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;">us-gaap_TreasuryStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<FILENAME>R3.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets - Parenthetical - $ / shares<br></strong></div></th>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Details {1}</strong></a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common Stock, Par or Stated Value Per Share</a></td>
<td class="nump">$ 0.025<span></span>
</td>
<td class="nump">$ 0.025<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_us-gaap_CommonStockSharesAuthorized', window );">Common Stock, Shares Authorized</a></td>
<td class="nump">8,000,000<span></span>
</td>
<td class="nump">8,000,000<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_us-gaap_CommonStockSharesIssued', window );">Common Stock, Shares, Issued</a></td>
<td class="nump">4,196,470<span></span>
</td>
<td class="nump">4,165,315<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_us-gaap_CommonStockSharesOutstanding', window );">Common Stock, Shares, Outstanding</a></td>
<td class="nump">4,196,470<span></span>
</td>
<td class="nump">4,165,315<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_us-gaap_TreasuryStockCommonShares', window );">Treasury Stock, Common, Shares</a></td>
<td class="nump">1,051,688<span></span>
</td>
<td class="nump">1,046,742<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<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>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<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 maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-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;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<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>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<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>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<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;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfFinancialPositionAbstract">
<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 );">- References</a><div><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;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_TreasuryStockCommonShares">
<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>Number of previously issued common shares repurchased by the issuing entity and held in treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481549/505-30-45-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;">us-gaap_TreasuryStockCommonShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<FILENAME>R4.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Income - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_IncomeStatementAbstract', window );"><strong>Details {2}</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</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_us-gaap_Revenues', window );">Sales, net (Note 9)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 46,292,725<span></span>
</td>
<td class="nump">$ 44,582,807<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_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of goods sold</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">24,814,581<span></span>
</td>
<td class="nump">23,743,554<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">21,478,144<span></span>
</td>
<td class="nump">20,839,253<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_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development costs</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">444,000<span></span>
</td>
<td class="nump">388,476<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_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general and administrative expenses</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">11,406,817<span></span>
</td>
<td class="nump">10,971,358<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">9,627,327<span></span>
</td>
<td class="nump">9,479,419<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_us-gaap_NonoperatingIncomeExpenseAbstract', window );"><strong>Other income</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_InvestmentIncomeInterest', window );">Interest, net</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,402,440<span></span>
</td>
<td class="nump">1,426,584<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_us-gaap_OtherNonoperatingIncomeExpense', window );">Miscellaneous</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">3,369<span></span>
</td>
<td class="nump">14,759<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpense', window );">Total other income, net</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,405,809<span></span>
</td>
<td class="nump">1,441,343<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before provision for income taxes</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">11,033,136<span></span>
</td>
<td class="nump">10,920,762<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_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes (Note 10)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="nump">1,620,000<span></span>
</td>
<td class="nump">1,922,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 9,413,136<span></span>
</td>
<td class="nump">$ 8,998,762<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_us-gaap_EarningsPerShareBasic', window );">Basic earnings per common share (Note 11)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">$ 3.01<span></span>
</td>
<td class="nump">$ 2.68<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_us-gaap_EarningsPerShareDiluted', window );">Diluted earnings per common share (Note 11)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">$ 2.87<span></span>
</td>
<td class="nump">$ 2.58<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%">
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Note 9</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[2]</td>
<td style="vertical-align: top;" valign="top">Note 10Note 10</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[3]</td>
<td style="vertical-align: top;" valign="top">Note 11Note 11</td>
</tr>
</table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<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 aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</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/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<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;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_EarningsPerShareBasic">
<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 amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</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/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<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;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</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_us-gaap_EarningsPerShareDiluted">
<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 amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</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/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<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;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</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_us-gaap_GrossProfit">
<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>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</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/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<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;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<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>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</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/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-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;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_IncomeStatementAbstract">
<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 );">- References</a><div><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;">us-gaap_IncomeStatementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_IncomeTaxExpenseBenefit">
<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>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</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/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-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;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_InvestmentIncomeInterest">
<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>Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities.</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/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(7)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<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;">us-gaap_InvestmentIncomeInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_NetIncomeLoss">
<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 portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</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/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-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;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_NonoperatingIncomeExpense">
<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 aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-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;">us-gaap_NonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_NonoperatingIncomeExpenseAbstract">
<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 );">- References</a><div><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;">us-gaap_NonoperatingIncomeExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_OperatingIncomeLoss">
<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 net result for the period of deducting operating expenses from operating revenues.</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/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<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;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_OtherNonoperatingIncomeExpense">
<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>Amount of income (expense) related to nonoperating activities, classified as other.</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/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-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;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_ResearchAndDevelopmentExpense">
<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>Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.</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/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482916/730-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 912<br> -SubTopic 730<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479532/912-730-25-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;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_Revenues">
<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>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</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/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-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;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_SellingGeneralAndAdministrativeExpense">
<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 aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.</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/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<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;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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>XML
<SEQUENCE>18
<FILENAME>R5.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Statements of Stockholders' Equity - USD ($)<br></strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Common Stock</div></th>
<th class="th"><div>Additional Paid-in Capital</div></th>
<th class="th"><div>Retained Earnings</div></th>
<th class="th"><div>Treasury Stock, Common</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Equity, Attributable to Parent, Beginning Balance at May. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 102,127<span></span>
</td>
<td class="nump">$ 10,947,089<span></span>
</td>
<td class="nump">$ 42,128,256<span></span>
</td>
<td class="num">$ (3,084,742)<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_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan', window );">Issuance of shares for employee stock purchase plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10<span></span>
</td>
<td class="nump">9,904<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan', window );">Issuance of shares for employee stock option plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,919<span></span>
</td>
<td class="nump">955,286<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(715,599)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Equity, Attributable to Parent, Ending Balance at May. 31, 2024</a></td>
<td class="nump">$ 51,246,686<span></span>
</td>
<td class="nump">104,056<span></span>
</td>
<td class="nump">12,959,531<span></span>
</td>
<td class="nump">51,127,018<span></span>
</td>
<td class="num">(12,943,919)<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_us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition', window );">Stock options issued for services</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,047,252<span></span>
</td>
<td class="text">&#160;<span></span>
</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_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">8,998,762<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,998,762<span></span>
</td>
<td class="text">&#160;<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_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(9,143,578)<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_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan', window );">Issuance of shares for employee stock purchase plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4<span></span>
</td>
<td class="nump">6,432<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan', window );">Issuance of shares for employee stock option plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">775<span></span>
</td>
<td class="nump">356,108<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(201,273)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Equity, Attributable to Parent, Ending Balance at May. 31, 2025</a></td>
<td class="nump">62,044,377<span></span>
</td>
<td class="nump">$ 104,835<span></span>
</td>
<td class="nump">14,544,580<span></span>
</td>
<td class="nump">60,540,154<span></span>
</td>
<td class="num">(13,145,192)<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_us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition', window );">Stock options issued for services</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,222,509<span></span>
</td>
<td class="text">&#160;<span></span>
</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_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 9,413,136<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,413,136<span></span>
</td>
<td class="text">&#160;<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_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition">
<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>Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-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;">us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_NetIncomeLoss">
<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 portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</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/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-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;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan">
<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>Value of shares issued during the period to an employee benefit plan, such as a defined contribution or defined benefit plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-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;">us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan">
<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>Aggregate change in value for stock issued during the period as a result of employee stock purchase plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-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;">us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_StockRepurchasedDuringPeriodValue">
<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>Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-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;">us-gaap_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_StockholdersEquity">
<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>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-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;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R6.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Operating activities</strong></a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 9,413,136<span></span>
</td>
<td class="nump">$ 8,998,762<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_us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net income to net cash flows from operating activities</strong></a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_Depreciation', window );">Depreciation</a></td>
<td class="nump">1,708,849<span></span>
</td>
<td class="nump">1,690,239<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_us-gaap_AcquisitionCosts', window );">Amortization</a></td>
<td class="nump">22,223<span></span>
</td>
<td class="nump">7,407<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_us-gaap_StockOptionPlanExpense', window );">Stock options issued for services</a></td>
<td class="nump">1,222,509<span></span>
</td>
<td class="nump">1,047,252<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_us-gaap_GainsLossesOnExtinguishmentOfDebt', window );">Credit loss expense</a></td>
<td class="nump">535,000<span></span>
</td>
<td class="nump">0<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_us-gaap_GainLossOnCondemnation', window );">Provision for inventory obsolescence</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">385,744<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_us-gaap_DeferredIncomeTaxesAndTaxCredits', window );">Deferred income taxes</a></td>
<td class="num">(585,385)<span></span>
</td>
<td class="num">(444,000)<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_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in other assets and liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts and other receivables</a></td>
<td class="num">(922,377)<span></span>
</td>
<td class="nump">341,096<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_us-gaap_IncreaseDecreaseInInventories', window );">Inventory</a></td>
<td class="num">(129,315)<span></span>
</td>
<td class="num">(2,533,181)<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_us-gaap_IncreaseDecreaseInPrepaidExpense', window );">Prepaid expenses</a></td>
<td class="num">(399,372)<span></span>
</td>
<td class="num">(285,899)<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_us-gaap_IncreaseDecreaseInOtherCurrentAssets', window );">Prepaid income taxes</a></td>
<td class="num">(94,333)<span></span>
</td>
<td class="nump">228,947<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_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities', window );">Costs and estimated earnings in excess of billings</a></td>
<td class="num">(1,003,934)<span></span>
</td>
<td class="num">(232,383)<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_us-gaap_IncreaseDecreaseInAccountsPayableTrade', window );">Accounts payable</a></td>
<td class="num">(319,607)<span></span>
</td>
<td class="num">(278,810)<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_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued expenses</a></td>
<td class="num">(592,027)<span></span>
</td>
<td class="nump">586,141<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_us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings', window );">Billings in excess of costs and estimated earnings</a></td>
<td class="num">(1,219,207)<span></span>
</td>
<td class="nump">3,608,804<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_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable', window );">Accrued income taxes</a></td>
<td class="num">(126,148)<span></span>
</td>
<td class="nump">126,148<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_us-gaap_IncreaseDecreaseInOtherOperatingAssets', window );">Other assets</a></td>
<td class="num">(38,077)<span></span>
</td>
<td class="num">(27,343)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net operating activities</a></td>
<td class="nump">7,471,935<span></span>
</td>
<td class="nump">13,218,924<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_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Investing activities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Acquisition of property and equipment</a></td>
<td class="num">(2,602,088)<span></span>
</td>
<td class="num">(1,149,388)<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_us-gaap_PaymentsToAcquireIntangibleAssets', window );">Patent expenditures</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(300,000)<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_us-gaap_PaymentsToAcquireOtherInvestments', window );">Increase in short-term investments</a></td>
<td class="num">(6,668,088)<span></span>
</td>
<td class="num">(3,616,522)<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_us-gaap_PaymentsForProceedsFromOtherInvestingActivities', window );">Increase in cash value of life insurance</a></td>
<td class="num">(4,620)<span></span>
</td>
<td class="num">(4,704)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net investing activities</a></td>
<td class="num">(9,274,796)<span></span>
</td>
<td class="num">(5,070,614)<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_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Financing activities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_ProceedsFromIssuanceOfCommonStock', window );">Proceeds from issuance of common stock</a></td>
<td class="nump">363,319<span></span>
</td>
<td class="nump">967,119<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_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Acquisition of treasury stock</a></td>
<td class="num">(201,273)<span></span>
</td>
<td class="num">(9,859,177)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net financing activities</a></td>
<td class="nump">162,046<span></span>
</td>
<td class="num">(8,892,058)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect', window );">Net change in cash and cash equivalents</a></td>
<td class="num">(1,640,815)<span></span>
</td>
<td class="num">(743,748)<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_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents - beginning</a></td>
<td class="nump">2,831,471<span></span>
</td>
<td class="nump">3,575,219<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_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents - ending</a></td>
<td class="nump">$ 1,190,656<span></span>
</td>
<td class="nump">$ 2,831,471<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AcquisitionCosts">
<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>Amount of capitalized acquisition cost incurred during period and excluded from amortization for oil- and gas-producing activities accounted for under full cost method. Excludes exploration and development costs and capitalized interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 932<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477385/932-360-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 932<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-10(c)(7)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479664/932-10-S99-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;">us-gaap_AcquisitionCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<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 );">- References</a><div><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;">us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<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>Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</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/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<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;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect">
<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>Amount, excluding effect from change in exchange rate, of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-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;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_DeferredIncomeTaxesAndTaxCredits">
<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>Amount of deferred income tax expense (benefit) and income tax credits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_DeferredIncomeTaxesAndTaxCredits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_Depreciation">
<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 amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-24<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<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;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_GainLossOnCondemnation">
<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 gain (loss) is the pre-tax difference between the net condemnation award and the entity's adjusted basis of the condemned property.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_GainLossOnCondemnation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_GainsLossesOnExtinguishmentOfDebt">
<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>Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 50<br> -Section 40<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481303/470-50-40-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 50<br> -Section 40<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481303/470-50-40-4<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;">us-gaap_GainsLossesOnExtinguishmentOfDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_IncreaseDecreaseInAccountsPayableTrade">
<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>Change in recurring obligations of a business that arise from the acquisition of merchandise, materials, supplies and services used in the production and sale of goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_IncreaseDecreaseInAccountsPayableTrade</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_IncreaseDecreaseInAccountsReceivable">
<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 increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable">
<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 increase (decrease) during the period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_IncreaseDecreaseInAccruedLiabilities">
<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 increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_IncreaseDecreaseInAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings">
<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 increase (decrease) during the reporting period in the liability reflecting cash payments received before the related costs have been incurred.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_IncreaseDecreaseInInventories">
<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 increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">
<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 );">- References</a><div><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;">us-gaap_IncreaseDecreaseInOperatingCapitalAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_IncreaseDecreaseInOtherCurrentAssets">
<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>Amount of increase (decrease) in current assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_IncreaseDecreaseInOtherCurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_IncreaseDecreaseInOtherOperatingAssets">
<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>Amount of increase (decrease) in operating assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_IncreaseDecreaseInOtherOperatingAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities">
<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>Amount of increase (decrease) in operating liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_IncreaseDecreaseInOtherOperatingLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_IncreaseDecreaseInPrepaidExpense">
<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 increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_IncreaseDecreaseInPrepaidExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<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>Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.</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/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<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;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<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 );">- References</a><div><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;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<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>Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.</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/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<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;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<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 );">- References</a><div><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;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<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>Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<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;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</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_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<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 );">- References</a><div><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;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_NetIncomeLoss">
<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 portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</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/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-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;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_PaymentsForProceedsFromOtherInvestingActivities">
<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>Amount of cash (inflow) outflow from investing activity, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-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;">us-gaap_PaymentsForProceedsFromOtherInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_PaymentsForRepurchaseOfCommonStock">
<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 cash outflow to reacquire common stock during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<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;">us-gaap_PaymentsForRepurchaseOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_PaymentsToAcquireIntangibleAssets">
<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 cash outflow to acquire asset without physical form usually arising from contractual or other legal rights, excluding goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<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;">us-gaap_PaymentsToAcquireIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_PaymentsToAcquireOtherInvestments">
<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>Amount of cash outflow to acquire investments classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<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;">us-gaap_PaymentsToAcquireOtherInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<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 cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<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;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_ProceedsFromIssuanceOfCommonStock">
<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 cash inflow from the additional capital contribution to the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<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;">us-gaap_ProceedsFromIssuanceOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_StockOptionPlanExpense">
<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>Amount of noncash expense for option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_StockOptionPlanExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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>XML
<SEQUENCE>20
<FILENAME>R7.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_SignificantAccountingPoliciesTextBlock', window );">1. Summary of Significant Accounting Policies:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>1. &#160;Summary of Significant Accounting Policies:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Nature of Operations:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. &#160;These similar products are included in one of nine categories; namely, Seismic Dampers, Fluidicshoks&#174;, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs, Custom Shock and Vibration Isolators, and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. &#160;The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The chief operating decision maker is the Chief Executive Officer who assesses performance for the business (and lone segment) and decides how to allocate resources based on net income as reported in a format consistent with the consolidated statements of income included in these consolidated financial statements. The measure of segment assets is as reported on the consolidated balance sheets in these consolidated financial statements.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">79% of the Company's 2025 revenue was generated from sales to customers in the United States and 15% was from sales to customers in Asia. &#160;Remaining sales were to customers in other countries in North America, Europe, Australia, and South America.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">86% of the Company's 2024 revenue was generated from sales to customers in the United States and 4% was from sales to customers in Asia. &#160;Remaining sales were to customers in other countries in North America, Europe, Australia, and South America.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Principles of Consolidation:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). &#160;All inter-company transactions and balances have been eliminated in consolidation.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Subsequent Events:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Use of Estimates:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. &#160;Actual results could differ from those estimates.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Cash and Cash Equivalents:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Short-Term Investments:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2025 and May 31, 2024 include money market funds, U.S. treasury securities and corporate bonds stated at fair value, which approximates cost. &#160;Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes.&#160;Realized gains and losses on the sale of investments are determined using the specific identification method.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The short-term investments are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Accounts and Other Receivables:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. &#160;Management provides for estimated credit losses through a charge to expense and a credit to a valuation allowance based on its assessment of the current status of individual accounts. &#160;Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Inventory:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Property and Equipment:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">Property and equipment is stated at cost net of accumulated depreciation. &#160;Depreciation is provided primarily using the straight-line method for financial reporting purposes and accelerated methods for income tax reporting purposes. &#160;Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Cash Value of Life Insurance:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Cash value of life insurance is stated at the surrender value of the contracts.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Revenue Recognition:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract&#8217;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of the Company&#8217;s contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations. &#160;</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying the Company&#8217;s performance obligations. &#160;Incurred costs represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. &#160;Contract costs include labor, material and overhead. &#160;Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. &#160;Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. &#160;In the year ended May 31, 2025, 68% of revenue was recorded for contracts in which revenue was recognized over time while 32% was recognized at a point in time. &#160;In the year ended May 31, 2024, 59% of revenue was recorded for contracts in which revenue was recognized over time while 41% was recognized at a point in time. </p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">Progress payments are typically negotiated for longer term projects. &#160;Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). &#160;For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. &#160;The asset, &#8220;costs and estimated earnings in excess of billings,&#8221; represents revenues recognized in excess of amounts billed. &#160;The liability, &#8220;billings in excess of costs and estimated earnings,&#8221; represents billings in excess of revenues recognized.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">If applicable, the Company recognizes an asset for the incremental material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. &#160;As of May 31, 2025 and 2024, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. &#160;These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Shipping and Handling Costs:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $239,182 and $190,939 for the years ended May 31, 2025 and 2024. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Income Taxes:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. &#160;Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. &#160;Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. &#160;The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2025 and 2024. &#160;The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2025 and 2024. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2022.</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Sales Taxes:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. &#160;The Company collects these taxes from customers and remits the entire amount as required by the applicable law. &#160;The Company excludes from revenues and expenses the tax collected and remitted.</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Stock-Based Compensation:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2025 and 2024 was $1,222,509 and $1,047,252.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>New Accounting Standards:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Any recently issued Accounting Standards Codification (ASC) guidance has either been implemented or is not significant to the Company.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_SignificantAccountingPoliciesTextBlock">
<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 entire disclosure for all significant accounting policies of the reporting entity.</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/disclosureRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/235/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-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;">us-gaap_SignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>21
<FILENAME>R8.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>2. Accounts and Other Receivables<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock', window );">2. Accounts and Other Receivables:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>2. &#160;Accounts and Other Receivables:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:347.7pt"><tr><td style="width:220.7pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:55pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Customers</p>
</td><td style="width:55pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b>6,164,251</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">5,241,874</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Customers &#8211;&#160;retention</p>
</td><td style="width:55pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b>-</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">-</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.7pt" valign="top"></td><td style="width:55pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b>6,164,251</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">5,241,874</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Less allowance for estimated credit losses</p>
</td><td style="width:55pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b>564,466</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">29,466</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.7pt" valign="top"></td><td style="width:55pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b>5,599,785</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">5,212,408</kbd>&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Retention receivable from customers represents amounts invoiced to customers where payments have been partially withheld pending completion of the project. &#160;The Company increased its allowance for estimated credit losses due to the uncertainty of collecting a $751,000 balance overdue on a structural project. &#160;The Company is in discussion with the customer regarding payment of this balance.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">All other amounts are expected to be collected within the next fiscal year.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock">
<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 entire disclosure for claims held for amounts due to entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/310-10/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-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;">us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>22
<FILENAME>R9.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>3. Inventory<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_InventoryDisclosureTextBlock', window );">3. Inventory:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>3. &#160;Inventory:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:220.1pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:68.05pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Raw materials</p>
</td><td style="width:68.05pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>627,616</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">886,947</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Work-in-process</p>
</td><td style="width:68.05pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>7,222,613</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">6,412,497</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Finished goods</p>
</td><td style="width:68.05pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>286,092</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">271,608</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"></td><td style="width:68.05pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>8,136,321</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">7,571,052</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Less allowance for obsolescence</p>
</td><td style="width:68.05pt;border-bottom:1pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>23,000</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-bottom:1pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:1pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">59,000</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt;border-bottom:0.5pt solid #000000" valign="top"></td><td style="width:68.05pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>8,113,321</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">7,512,052</kbd>&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_InventoryDisclosureTextBlock">
<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 entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.</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/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/330/tableOfContent<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;">us-gaap_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>23
<FILENAME>R10.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>4. Costs and Estimated Earnings on Uncompleted Contracts<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock', window );">4. Costs and Estimated Earnings on Uncompleted Contracts:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>4. &#160;Costs and Estimated Earnings on Uncompleted Contracts:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:220.85pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Costs incurred on uncompleted contracts</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>12,499,313</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">10,576,401&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Estimated earnings</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>13,175,240</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">10,459,240&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"></td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>25,674,553</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">21,035,641&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Less billings to date</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>24,696,121</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">22,280,350&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"></td><td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>978,432</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">(1,244,709)</kbd>&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Amounts are included in the accompanying balance sheets under the following captions:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:220.6pt" valign="top"></td><td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.8pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center">&#160;</p>
</td><td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Costs and estimated earnings in excess of billings</p>
</td><td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><b>5,360,499</b></kbd>&#160;</p>
</td><td style="width:4.8pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">4,356,565&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Billings in excess of costs and estimated earnings </p>
</td><td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><b>4,382,067</b></kbd>&#160;</p>
</td><td style="width:4.8pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">5,601,274&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.6pt" valign="top"></td><td style="width:67.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><b>978,432</b></kbd>&#160;</p>
</td><td style="width:4.8pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">(1,244,709)</kbd>&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The following summarizes the status of Projects in progress as of May 31, 2025 and 2024:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="border-collapse:collapse"><tr><td style="width:252pt" valign="top"></td><td style="width:93.6pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:93.6pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:252pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Number of Projects in progress</p>
</td><td style="width:93.6pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>21</b></p>
</td><td style="width:93.6pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">19</p>
</td></tr>
<tr><td style="width:252pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Aggregate percent complete</p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>65%</b></p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">53%</p>
</td></tr>
<tr><td style="width:252pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Aggregate amount remaining</p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>$13,100,204</b></p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$18,650,312</p>
</td></tr>
<tr><td style="width:252pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Percentage of total value invoiced to customer</p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>64%</b></p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">56%</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company expects to recognize the majority of remaining revenue on all open projects during the May 31, 2026 fiscal year. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Revenue recognized during the years ended May 31, 2025 and 2024 for amounts included in billings in excess of costs and estimated earnings as of the beginning of the year amounted to $5,601,000, and $1,992,000.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock">
<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 entire disclosure for prepaid health care service provider's significant business and contractual arrangements with hospitals, physicians, or other associated entities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 954<br> -SubTopic 405<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/954-405/tableOfContent<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;">us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R11.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>5. Maintenance and Other Inventory<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy', window );">5. Maintenance and Other Inventory:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>5. &#160;Maintenance and Other Inventory:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:356.4pt"><tr><td style="width:218.45pt;border-bottom:0.5pt solid #000000" valign="top"></td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center">&#160;</p>
</td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:218.45pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Maintenance and other inventory</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ 1,872,931</b></p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ 2,416,748</p>
</td></tr>
<tr><td style="width:218.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Less allowance for obsolescence</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>765,056</b></p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">836,919</p>
</td></tr>
<tr><td style="width:218.45pt" valign="top"></td><td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ 1,107,875</b></p>
</td><td style="width:4.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ 1,579,829</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. &#160;This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering. &#160;This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. &#160;Therefore, management of the Company has recorded an allowance for potential inventory obsolescence. &#160;$107,000 and $791,000 of inventory was disposed of during the years ended May 31, 2025 and 2024. &#160;The provision for potential inventory obsolescence was zero and $386,000 for the years ended May 31, 2025 and 2024. &#160;The Company continues to rework slow-moving inventory, where applicable, to convert it to product to be used on customer orders. </p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy">
<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>Disclosure of accounting policy for planned major maintenance activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 5<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482251/360-10-25-5<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;">us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>25
<FILENAME>R12.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>6. Property and Equipment<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock', window );">6. Property and Equipment:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>6. &#160;Property and Equipment:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:220.85pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:-13.9pt;margin-right:6.15pt;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Land</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>195,220</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">195,220</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Buildings and improvements</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>10,160,842</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">10,054,459</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Machinery and equipment</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>17,950,644</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">15,956,076</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Office furniture and equipment</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>3,193,150</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">3,113,921</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Autos and trucks</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>91,717</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">24,818</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Land improvements</p>
</td><td style="width:67.35pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>662,168</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">662,168</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"></td><td style="width:67.35pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>32,253,741</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">30,006,662</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Less accumulated depreciation</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>20,179,569</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">18,825,729</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"></td><td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>12,074,172</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">11,180,933</kbd>&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Depreciation expense was $1,708,849 and $1,690,239 for the years ended May 31, 2025 and 2024.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company has commitments to make capital expenditures of approximately $1,853,000 as of May 31, 2025.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock">
<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 entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/360/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-6<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-7<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;">us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>26
<FILENAME>R13.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>7. Short-Term Borrowings<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_ShortTermDebtTextBlock', window );">7. Short-Term Borrowings:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#000080"><b>7. &#160;Short-Term Borrowings:</b></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company has available a $10,000,000 bank demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day SOFR rate plus 2.365%. The line is secured by a negative pledge of the Company's real and personal property and is subject to renewal annually. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">There is no amount outstanding under the line of credit at May 31, 2025 or 2024. &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company uses a cash management facility under which the bank draws against the available line of credit to cover checks presented for payment on a daily basis. &#160;Outstanding checks under this arrangement totaled $97,673 and $372,347 as of May 31, 2025 and 2024. &#160;These amounts are included in accounts payable on the accompanying balance sheets.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_ShortTermDebtTextBlock">
<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 entire disclosure for short-term debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 470<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/470/tableOfContent<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;">us-gaap_ShortTermDebtTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>27
<FILENAME>R14.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>8. Accrued Expenses<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">8. Accrued Expenses:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>8. &#160;Accrued Expenses: </b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:220.1pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:68.05pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Customer deposits</p>
</td><td style="width:68.05pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>104,825</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">285,689</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Personnel costs</p>
</td><td style="width:68.05pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>3,214,157</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">3,763,777</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Other</p>
</td><td style="width:68.05pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>753,454</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">614,997</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt;border-bottom:0.5pt solid #000000" valign="top"></td><td style="width:68.05pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>4,072,436</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">4,664,463</kbd>&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock">
<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 entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 720<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483384/720-30-45-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R15.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>9. Sales<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">9. Sales:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>9. &#160;Sales:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company manufactures and sells a single group of very similar products that have many different applications for customers. &#160;These similar products are included in one of nine categories; namely, Seismic Dampers, Fluidicshoks&#174;, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs, Custom Shock and Vibration Isolators, and Custom Actuators. &#160;Management does not track or otherwise account for sales broken down by these categories. &#160;Sales of the Company's products are made to three general groups of customers: industrial, structural and aerospace / defense. &#160;A breakdown of sales to these three general groups of customers is as follows: &#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:216.1pt" valign="top"></td><td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="color:#000080"><b>202</b><b>5</b></span></p>
</td><td style="width:12pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:216.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Structural</p>
</td><td style="width:65.95pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ 14,827,044</b></p>
</td><td style="width:12pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:65.95pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ 14,406,863</p>
</td></tr>
<tr><td style="width:216.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Aerospace / Defense</p>
</td><td style="width:65.95pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>27,134,038</b></p>
</td><td style="width:12pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:65.95pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">26,675,321</p>
</td></tr>
<tr><td style="width:216.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Industrial</p>
</td><td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>4,331,643</b></p>
</td><td style="width:12pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">3,500,623</p>
</td></tr>
<tr><td style="width:216.1pt" valign="top"></td><td style="width:65.95pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ 46,292,725</b></p>
</td><td style="width:12pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:65.95pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ 44,582,807</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Sales to two customers approximated 36% (21% and 15% respectively) of net sales for 2025. Sales to a single customer approximated 21% of net sales for 2024.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_RevenueFromContractWithCustomerTextBlock">
<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 entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.</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/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-15<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/606/tableOfContent<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;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>29
<FILENAME>R16.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>10. Income Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_IncomeTaxDisclosureTextBlock', window );">10. Income Taxes:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>10. &#160;Income Taxes:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:391.55pt"><tr><td style="width:216.5pt;border-bottom:0.75pt solid #000000" valign="bottom"></td><td colspan="2" style="width:85pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:18.15pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td colspan="2" style="width:4.75pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">Current tax provision:</p>
</td><td colspan="2" style="width:85pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td colspan="2" style="width:4.75pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Federal </p>
</td><td style="width:67.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>2,204,000&#160;</b></kbd>&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">2,365,000&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">State</p>
</td><td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>1,000&#160;</b></kbd>&#160;</p>
</td><td style="width:18.15pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">1,000&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"></td><td style="width:67.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>2,205,000&#160;</b></kbd>&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">2,366,000&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred tax provision (benefit):</p>
</td><td style="width:67.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Federal</p>
</td><td style="width:67.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>(585,000)</b></kbd>&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(444,000)</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">State</p>
</td><td style="width:67.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>-&#160;</b></kbd>&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">-&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"></td><td style="width:67.5pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>(585,000)</b></kbd>&#160;</p>
</td><td style="width:18.15pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(444,000)</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"></td><td style="width:67.5pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>1,620,000&#160;</b></kbd>&#160;</p>
</td><td style="width:18.15pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">1,922,000&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:218.35pt" valign="top"></td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Computed tax provision at the expected statutory rate</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>2,317,000&#160;</b></kbd>&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">2,293,400&#160;</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Tax effect of permanent differences:</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Research tax credits</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>(489,692)</b></kbd>&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(407,675)</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Foreign-derived intangible income deduction</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>(224,700)</b></kbd>&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(142,100)</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Stock option costs</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>(11,682)</b></kbd>&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">48,500&#160;</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Other permanent differences</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>24,300&#160;</b></kbd>&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">2,800&#160;</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Other</p>
</td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>4,774&#160;</b></kbd>&#160;</p>
</td><td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">127,075&#160;</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"></td><td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>1,620,000&#160;</b></kbd>&#160;</p>
</td><td style="width:4.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">1,922,000&#160;</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Effective income tax rate</p>
</td><td style="width:66.65pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>14.7%</b></kbd>&#160;</p>
</td><td style="width:4.65pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">17.6%</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Significant components of the Company's deferred tax assets and liabilities consist of the following:</p>
<p style="font:11pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:216.6pt" valign="top"></td><td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred tax assets:</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Allowance for estimated credit losses</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>118,500&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">6,200&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Tax inventory adjustment</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>52,600&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">57,300&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Allowance for obsolete inventory</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>165,500&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">188,100&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Accrued vacation</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>169,600&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">163,000&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Warranty reserve</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>112,500&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">100,700&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">R&amp;D capitalization</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>2,111,200&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">1,479,800&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Stock options issued for services</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>117,700&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">181,200&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"></td><td style="width:67.25pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>2,847,600&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">2,176,300&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred tax liabilities:</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Excess tax depreciation</p>
</td><td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>(1,249,600)</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">(1,163,685)</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000">Net deferred tax assets</p>
</td><td style="width:67.25pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>1,598,000&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">1,012,615&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. &#160;The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. &#160;A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. &#160;The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. &#160;The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. &#160;The Company will need to generate approximately $13.6 million in taxable income in future years in order to realize the deferred tax assets recorded as of May 31, 2025 of $2,847,600.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company and its subsidiary file consolidated Federal and State income tax returns. &#160;As of May 31, 2025, the Company had State investment tax credit carryforwards of approximately $493,000 expiring through May 2030.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_IncomeTaxDisclosureTextBlock">
<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 entire disclosure for income tax.</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/disclosureRef<br> -Topic 942<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477617/942-740-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478822/944-740-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12C<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12B<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 270<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477891/740-270-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.5.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-13<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/740/tableOfContent<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-14<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-21<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482603/740-30-50-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;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>30
<FILENAME>R17.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>11. Earnings Per Common Share<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_EarningsPerShareTextBlock', window );">11. Earnings Per Common Share:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>11. &#160;Earnings Per Common Share: </b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Basic earnings per common share is computed by dividing income available to common stockholders by the weighted-average common shares outstanding for the period. &#160;Diluted earnings per common share reflects the weighted-average common shares outstanding and dilutive potential common shares, such as stock options.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">A reconciliation of weighted-average common shares outstanding to weighted-average common shares outstanding assuming dilution is as follows:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:388.8pt"><tr><td style="width:258.7pt" valign="top"></td><td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:258.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000">Average common shares outstanding</p>
</td><td style="width:62.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>3,131,134</b></p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:62.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">3,353,077</p>
</td></tr>
<tr><td style="width:258.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000">Common shares issuable under stock option plans</p>
</td><td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>147,555</b></p>
</td><td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">135,711</p>
</td></tr>
<tr><td style="width:258.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000">Average common shares outstanding assuming dilution</p>
</td><td style="width:62.7pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>3,278,689</b></p>
</td><td style="width:4.7pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:62.7pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">3,488,788</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_EarningsPerShareTextBlock">
<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 entire disclosure for earnings per share.</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/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/260/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-3<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;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>31
<FILENAME>R18.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>12. Employee Stock Purchase Plan<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock', window );">12. Employee Stock Purchase Plan:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>12. &#160;Employee Stock Purchase Plan:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">In March 2004, the Company reserved 295,000 shares of common stock for issuance pursuant to a non-qualified employee stock purchase plan. &#160;Participation in the employee stock purchase plan is voluntary for all eligible employees of the Company. &#160;Purchase of common shares can be made by employee contributions through payroll deductions and without brokers&#8217; fees. &#160;At the end of each calendar quarter, the employee contributions will be applied to the purchase of common shares using a share value equal to the mean between the closing bid and ask prices of the stock on that date. &#160;These shares are distributed to the employees at the end of each calendar quarter or upon withdrawal from the plan. &#160;During the years ended May 31, 2025 and 2024, 155 ($32.51 to $49.40 price per share) and 372 ($21.70 to $48.89 price per share) common shares, respectively, were issued to employees. As of May 31, 2025, 215,838 shares were reserved for further issue. </p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock">
<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>Tabular disclosure of share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R19.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>13. Stock Option Plans<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">13. Stock Option Plans:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>13. &#160;Stock Option Plans:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">In 2022, the Company adopted a stock option plan which permits the Company to grant both incentive stock options and non-qualified stock options. &#160;The incentive stock options qualify for preferential treatment under the Internal Revenue Code. &#160;Under this plan, 260,000 shares of common stock have been reserved for grant to key employees and directors of the Company and 233,800 shares have been granted as of May 31, 2025. Under the plan, the option price may not be less than the fair market value of the stock at the time the options are granted. Options vest immediately and expire ten years from the date of grant.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Using the Black-Scholes option pricing model, the weighted average estimated fair value of each option granted under the plan was $13.61 during 2025 and $12.32 during 2024. &#160;The pricing model uses the assumptions noted in the following table. &#160;Expected volatility is based on the historical volatility of the Company's stock. &#160;The risk-free interest rate for periods within the contractual life of the option is based on the U.S. Treasury yield curve in effect at the time of the grant. &#160;The expected life of options granted is derived from previous history of stock exercises from the grant date and represents the period of time that options granted are expected to be outstanding. &#160;The Company uses historical data to estimate option exercise and employee termination assumptions under the valuation model. &#160;The Company has never paid dividends on its common stock and does not anticipate doing so in the foreseeable future.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:217.5pt" valign="top"></td><td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:7.5pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Risk-free interest rate</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>3.87%</b></p>
</td><td style="width:7.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">4.00%</p>
</td></tr>
<tr><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Expected life in years</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>4.2</b></p>
</td><td style="width:7.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">4.3</p>
</td></tr>
<tr><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Expected volatility </p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>39%</b></p>
</td><td style="width:7.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">37%</p>
</td></tr>
<tr style="height:4pt"><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Expected dividend yield</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>0%</b></p>
</td><td style="width:7.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">0%</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">The following is a summary of stock option activity:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:171.2pt" valign="bottom"></td><td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Shares</b></p>
</td><td style="width:1.9pt;border-bottom:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Weighted Average Exercise Price</b></p>
</td><td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Intrinsic Value</b></p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Outstanding - May 31, 2023</p>
</td><td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>333,000</b></p>
</td><td style="width:1.9pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">12.70</kbd>&#160;</p>
</td><td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">2,016,961</kbd>&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Options granted</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>85,000</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">34.04</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options exercised</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>76,750</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">12.54</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options expired</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>750</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">-</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Outstanding - May 31, 2024</p>
</td><td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>340,500</b></p>
</td><td style="width:1.9pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">18.07</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">11,185,815</kbd>&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Options granted</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>89,800</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">37.24</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options exercised</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>31,000</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">11.51</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options expired</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>-</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">-</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.55pt"><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Outstanding - May 31, 2025</p>
</td><td style="width:62.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>399,300</b></p>
</td><td style="width:1.9pt;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">22.89</kbd>&#160;</p>
</td><td style="width:62.3pt;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">6,341,305</kbd>&#160;</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">We calculated intrinsic value for those options that had an exercise price lower than the market price of our common shares as of the balance sheet dates. &#160;The aggregate intrinsic value of outstanding options as of the end of each fiscal year is calculated as the difference between the exercise price of the underlying options and the market price of our common shares for the options that were in-the-money at that date (309,500 at May 31, 2025 and 340,500 at May 31, 2024). &#160;The Company's closing stock price was $36.93 and $50.92 as of May 31, 2025 and 2024. &#160;As of May 31, 2025, there are 26,200 options available for future grants under the 2022 stock option plan. &#160;$356,883 was received from the exercise of options during the fiscal year ended May 31, 2025; $957,205 was received from the exercise of options during the fiscal year ended May 31, 2024.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The following table summarizes information about stock options outstanding at May 31, 2025:</p>
<p style="font:6pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:367.2pt"><tr><td colspan="4" style="width:360pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>Outstanding and Exercisable</b></p>
</td></tr>
<tr><td style="width:144pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;margin-right:-9pt;color:#000000;text-align:center">Range of Exercise Prices</p>
</td><td style="width:50.4pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Number of Options</p>
</td><td style="width:100.8pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Remaining Years of Contractual Life</p>
</td><td colspan="2" style="width:72pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Exercise Price</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$10.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">45,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">5.8</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.71</p>
</td></tr>
<tr style="height:12.15pt"><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$10.01-$11.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">15,250</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">3.7</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$10.21</p>
</td></tr>
<tr style="height:12.15pt"><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$11.01-$12.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">99,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">5.4</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$11.72</p>
</td></tr>
<tr style="height:12.15pt"><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$12.01-$13.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">6,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">1.7</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$12.41</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$13.01-$14.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">10,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">1.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$13.80</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$16.01-$17.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">10,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">0.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$16.40</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$19.01-$20.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">47,500</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">7.3</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$19.89</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$20.01-$21.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">33,750</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">8.4</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$20.78</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$30.01-$31.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">43,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">9.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$30.55</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$43.01-$44.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">46,800</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">9.4</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$43.38</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$46.01-$47.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">43,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">8.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$46.99</p>
</td></tr>
<tr><td style="width:144pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$47.00</p>
</td><td style="width:50.4pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">399,300</p>
</td><td style="width:100.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">6.9</p>
</td><td colspan="2" style="width:72pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$22.89</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The following table summarizes information about stock options outstanding at May 31, 2024:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:367.2pt"><tr><td colspan="4" style="width:360pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>Outstanding and Exercisable</b></p>
</td></tr>
<tr><td style="width:144pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;margin-right:-9pt;color:#000000;text-align:center">Range of Exercise Prices</p>
</td><td style="width:50.4pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Number of Options</p>
</td><td style="width:100.8pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Remaining Years of Contractual Life</p>
</td><td colspan="2" style="width:72pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Exercise Price</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$10.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">55,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">7.0</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.67</p>
</td></tr>
<tr style="height:12.15pt"><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$10.01-$11.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">15,250</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">4.7</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$10.21</p>
</td></tr>
<tr style="height:12.15pt"><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$11.01-$12.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">106,250</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">6.5</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$11.72</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$12.01-$13.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">19,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">1.5</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$12.36</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$13.01-$14.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">10,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$13.80</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$16.01-$17.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">10,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">1.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$16.40</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$19.01-$20.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">47,500</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">8.3</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$19.89</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$20.01-$21.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">34,500</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">9.4</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$20.78</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$46.01-$47.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">43,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">9.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$46.99</p>
</td></tr>
<tr><td style="width:144pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$47.00</p>
</td><td style="width:50.4pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">340,500</p>
</td><td style="width:100.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">6.9</p>
</td><td colspan="2" style="width:72pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$18.07</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<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 entire disclosure for share-based payment arrangement.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R20.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>14. Retirement Plan<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock', window );">14. Retirement Plan:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="color:#000080"><b>1</b><b>4</b><b>. &#160;Retirement Plan:</b></span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company maintains a retirement plan for essentially all employees pursuant to Section 401(k) of the Internal Revenue Code. &#160;The Company matches a percentage of employee voluntary salary deferrals subject to limitations. &#160;The Company may also make discretionary contributions as determined annually by the Company's Board of Directors. &#160;The amount expensed under the plan was $462,445 and $431,720 for the years ended May 31, 2025 and 2024.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock">
<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 entire disclosure for retirement benefits.</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/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (o)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (p)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (q)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480266/715-60-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480126/715-20-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480794/715-70-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480482/715-20-55-17<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/715/tableOfContent<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-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;">us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>34
<FILENAME>R21.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>15. Fair Value of Financial Instruments<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_FairValueDisclosuresTextBlock', window );">15. Fair Value of Financial Instruments:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>15. &#160;Fair Value of Financial Instruments:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable, and accrued liabilities approximate fair value because of the short maturity of these instruments.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The fair values of short-term investments were determined as described in Note 1.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_FairValueDisclosuresTextBlock">
<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 entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</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/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 107<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-107<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2E<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 940<br> -SubTopic 820<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478119/940-820-50-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;">us-gaap_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>35
<FILENAME>R22.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>16. Cash Flows Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_CashFlowSupplementalDisclosuresTextBlock', window );">16. Cash Flows Information:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>16. &#160;Cash Flows Information:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:217.5pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:3.75pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td style="width:3.75pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td></tr>
<tr><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td style="width:3.75pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:3.75pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;Interest paid</p>
</td><td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>None</b></p>
</td><td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">None</p>
</td><td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:12.3pt"><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td style="width:67.5pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td style="width:3.75pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:67.5pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:3.75pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:12.3pt"><td style="width:217.5pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;Income taxes paid</p>
</td><td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>$2,425,000</b></p>
</td><td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$2,010,000</p>
</td><td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashFlowSupplementalDisclosuresTextBlock">
<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 entire disclosure for supplemental cash flow activities, including cash, noncash, and part noncash transactions, for the period. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. "Part noncash" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/230/tableOfContent<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;">us-gaap_CashFlowSupplementalDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R23.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>17. Legal Proceedings<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes</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_us-gaap_LegalMattersAndContingenciesTextBlock', window );">17. Legal Proceedings:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>17. &#160;Legal Proceedings: </b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company has been named as a third-party defendant in an action captioned Board of Managers of the 432 Park Condominium, et al. v. 56<span style="vertical-align:super">th</span> and Park (NY) Owner LLC, et al. (the &#8220;Action&#8221;). </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Action was filed on or about September 23, 2021. In the Action, the Board of Managers of 432 Park Condominium (the &#8220;Owner&#8221;), a condominium association for a high-rise condominium building (the &#8220;Building&#8221;) located at 432 Park Avenue in New York, N.Y., asserts a claim against the condominium sponsor, 56<span style="vertical-align:super">th</span> and Park (NY) Owner LLC (the &#8220;Sponsor&#8221;) for damages arising from construction and design defects to the residential and commercial units at the Building. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Sponsor subsequently filed a third-party complaint against LendLease Construction (US) LMB (&#8220;LendLease&#8221;) and other parties involved in the Building&#8217;s design. As to LendLease, the third-party complaint alleges breach of a construction management contract between LendLease and the Sponsor and negligence arising from purported failure to perform under the contract, and seeks indemnification against any damages asserted against the Sponsor by the Owner.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">LendLease subsequently initiated a third-party complaint seeking indemnification from entities with whom LendLease had contracted for the supply of materials and services in connection with construction of the Building. The third-party complaint also </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"><span style="font-size:10pt">names the Company as a third-party defendant based upon a contract between the Company and LendLease to supply 16 Viscous Damping Devices that were incorporated into a Tuned Mass Damper system designed by a third party to limit accelerations of the Building during wind events. The Company has timely filed and served an answer denying the allegations in LendLease&#8217;s third party complaint.</span></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Action, and all of the related third-party actions, are pending in the Commercial Division of the Supreme Court, New York County. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Discovery relating to the Action remains ongoing and is expected to conclude on or about December 24, 2025, and the deadline to file dispositive motions has been extended to March 11, 2026.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">At present, the Company is unable to determine the likelihood of an unfavorable outcome or to quantify a potential loss.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_LegalMattersAndContingenciesTextBlock">
<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 entire disclosure for legal proceedings, legal contingencies, litigation, regulatory and environmental matters and other contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 450<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/450/tableOfContent<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;">us-gaap_LegalMattersAndContingenciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>37
<FILENAME>R24.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Nature of Operations (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_NatureOfOperations', window );">Nature of Operations:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Nature of Operations:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. &#160;These similar products are included in one of nine categories; namely, Seismic Dampers, Fluidicshoks&#174;, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs, Custom Shock and Vibration Isolators, and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. &#160;The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The chief operating decision maker is the Chief Executive Officer who assesses performance for the business (and lone segment) and decides how to allocate resources based on net income as reported in a format consistent with the consolidated statements of income included in these consolidated financial statements. The measure of segment assets is as reported on the consolidated balance sheets in these consolidated financial statements.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">79% of the Company's 2025 revenue was generated from sales to customers in the United States and 15% was from sales to customers in Asia. &#160;Remaining sales were to customers in other countries in North America, Europe, Australia, and South America.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">86% of the Company's 2024 revenue was generated from sales to customers in the United States and 4% was from sales to customers in Asia. &#160;Remaining sales were to customers in other countries in North America, Europe, Australia, and South America.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NatureOfOperations">
<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 entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.</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/exampleRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482836/275-10-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482836/275-10-55-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-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;">us-gaap_NatureOfOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R25.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Principles of Consolidation (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_ConsolidationPolicyTextBlock', window );">Principles of Consolidation:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Principles of Consolidation:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). &#160;All inter-company transactions and balances have been eliminated in consolidation.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConsolidationPolicyTextBlock">
<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>Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.</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/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-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;">us-gaap_ConsolidationPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R26.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Subsequent Events (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_SubsequentEventsPolicyPolicyTextBlock', window );">Subsequent Events:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Subsequent Events:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.</span></p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_SubsequentEventsPolicyPolicyTextBlock">
<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>Disclosure of accounting policy for reporting subsequent events.</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;">us-gaap_SubsequentEventsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>40
<FILENAME>R27.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Use of Estimates (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_UseOfEstimates', window );">Use of Estimates:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Use of Estimates:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. &#160;Actual results could differ from those estimates.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_UseOfEstimates">
<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>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</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/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-9<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482836/275-10-55-6<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-6<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-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;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>41
<FILENAME>R28.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Cash and Cash Equivalents (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and Cash Equivalents:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Cash and Cash Equivalents:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock">
<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>Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-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;">us-gaap_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R29.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Short-Term Investments (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock', window );">Short-Term Investments:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Short-Term Investments:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2025 and May 31, 2024 include money market funds, U.S. treasury securities and corporate bonds stated at fair value, which approximates cost. &#160;Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes.&#160;Realized gains and losses on the sale of investments are determined using the specific identification method.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The short-term investments are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock">
<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 entire disclosure of cash, cash equivalent, and short-term investment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/320/tableOfContent<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;">us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R30.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Accounts and Other Receivables (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_TradeAndOtherAccountsReceivablePolicy', window );">Accounts and Other Receivables:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Accounts and Other Receivables:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. &#160;Management provides for estimated credit losses through a charge to expense and a credit to a valuation allowance based on its assessment of the current status of individual accounts. &#160;Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_TradeAndOtherAccountsReceivablePolicy">
<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>Disclosure of accounting policy for accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481569/310-20-50-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;">us-gaap_TradeAndOtherAccountsReceivablePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>44
<FILENAME>R31.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Inventory (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_InventoryPolicyTextBlock', window );">Inventory:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Inventory:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPolicyTextBlock">
<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>Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</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/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 330<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478411/912-330-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/330/tableOfContent<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 270<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482989/270-10-45-6<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;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R32.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Property and Equipment (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and Equipment:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Property and Equipment:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">Property and equipment is stated at cost net of accumulated depreciation. &#160;Depreciation is provided primarily using the straight-line method for financial reporting purposes and accelerated methods for income tax reporting purposes. &#160;Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.</span></p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<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>Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-6<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-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;">us-gaap_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>46
<FILENAME>R33.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Cash Value of Life Insurance (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock', window );">Cash Value of Life Insurance:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Cash Value of Life Insurance:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Cash value of life insurance is stated at the surrender value of the contracts.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock">
<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 entire disclosure for corporate (COLI) or bank (BOLI) owned life insurance including the amount of cash surrender value that could be received as of the date of the statement of financial position, any restrictions on the company's ability to obtain the value of the life insurance policy on surrender, or any other additional information desired to be disclosed.</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/disclosureRef<br> -Topic 325<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/325-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 325<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481463/325-30-50-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;">us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R34.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Revenue Recognition (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_RevenueRecognitionPolicyTextBlock', window );">Revenue Recognition:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Revenue Recognition:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract&#8217;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of the Company&#8217;s contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations. &#160;</p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying the Company&#8217;s performance obligations. &#160;Incurred costs represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. &#160;Contract costs include labor, material and overhead. &#160;Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. &#160;Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. &#160;In the year ended May 31, 2025, 68% of revenue was recorded for contracts in which revenue was recognized over time while 32% was recognized at a point in time. &#160;In the year ended May 31, 2024, 59% of revenue was recorded for contracts in which revenue was recognized over time while 41% was recognized at a point in time. </p>
<p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify">Progress payments are typically negotiated for longer term projects. &#160;Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). &#160;For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. &#160;The asset, &#8220;costs and estimated earnings in excess of billings,&#8221; represents revenues recognized in excess of amounts billed. &#160;The liability, &#8220;billings in excess of costs and estimated earnings,&#8221; represents billings in excess of revenues recognized.</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">If applicable, the Company recognizes an asset for the incremental material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. &#160;As of May 31, 2025 and 2024, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. &#160;These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_RevenueRecognitionPolicyTextBlock">
<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>Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.</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/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-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;">us-gaap_RevenueRecognitionPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>48
<FILENAME>R35.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Shipping and Handling Costs (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_ShippingAndHandlingCostPolicyTextBlock', window );">Shipping and Handling Costs:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Shipping and Handling Costs:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $239,182 and $190,939 for the years ended May 31, 2025 and 2024. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_ShippingAndHandlingCostPolicyTextBlock">
<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>Disclosure of accounting policy for the classification of shipping and handling costs, including whether the costs are included in cost of sales or included in other income statement accounts. If shipping and handling fees are significant and are not included in cost of sales, disclosure includes both the amounts of such costs and the line item on the income statement which includes such costs.</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;">us-gaap_ShippingAndHandlingCostPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>49
<FILENAME>R36.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Income Taxes (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Taxes:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080"><b>Income Taxes:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. &#160;Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. &#160;Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. &#160;The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2025 and 2024. &#160;The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2025 and 2024. </p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2022.</span></p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxPolicyTextBlock">
<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>Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</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/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-20<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-25<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-28<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-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;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R37.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Sales Taxes (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_RegulatoryIncomeTaxesPolicy', window );">Sales Taxes:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Sales Taxes:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><span style="color:#000000">Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. &#160;The Company collects these taxes from customers and remits the entire amount as required by the applicable law. &#160;The Company excludes from revenues and expenses the tax collected and remitted.</span></p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_RegulatoryIncomeTaxesPolicy">
<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>Disclosure of accounting policy for income taxes, including investment tax credits, and the related regulatory treatment (for example, whether deferred income tax accounting - normalization - is allowed in rate making).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 980<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479068/980-740-25-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 980<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479068/980-740-25-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;">us-gaap_RegulatoryIncomeTaxesPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>51
<FILENAME>R38.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Stock-Based Compensation (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-Based Compensation:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>Stock-Based Compensation:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2025 and 2024 was $1,222,509 and $1,047,252.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<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>Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-5<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-4<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.C.Q3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.1.Q5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.3.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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>XML
<SEQUENCE>52
<FILENAME>R39.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: New Accounting Standards (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_PolicyTextBlockAbstract', window );"><strong>Policies</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_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">New Accounting Standards:</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"><b>New Accounting Standards:</b></p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Any recently issued Accounting Standards Codification (ASC) guidance has either been implemented or is not significant to the Company.</p>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<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>Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.</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;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_PolicyTextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_PolicyTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R40.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>2. Accounts and Other Receivables: Accounts and Other Receivables (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock', window );">Accounts and Other Receivables</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:347.7pt"><tr><td style="width:220.7pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:55pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Customers</p>
</td><td style="width:55pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b>6,164,251</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">5,241,874</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Customers &#8211;&#160;retention</p>
</td><td style="width:55pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b>-</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">-</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.7pt" valign="top"></td><td style="width:55pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b>6,164,251</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">5,241,874</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Less allowance for estimated credit losses</p>
</td><td style="width:55pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b>564,466</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">29,466</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.7pt" valign="top"></td><td style="width:55pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"><b>5,599,785</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">5,212,408</kbd>&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock">
<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>Tabular disclosure of allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<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;">us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R41.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>3. Inventory: Schedule of Inventory (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_ScheduleOfUtilityInventoryTextBlock', window );">Schedule of Inventory</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:220.1pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:68.05pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Raw materials</p>
</td><td style="width:68.05pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>627,616</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">886,947</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Work-in-process</p>
</td><td style="width:68.05pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>7,222,613</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">6,412,497</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Finished goods</p>
</td><td style="width:68.05pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>286,092</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">271,608</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"></td><td style="width:68.05pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>8,136,321</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">7,571,052</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Less allowance for obsolescence</p>
</td><td style="width:68.05pt;border-bottom:1pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>23,000</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-bottom:1pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:1pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">59,000</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt;border-bottom:0.5pt solid #000000" valign="top"></td><td style="width:68.05pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>8,113,321</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">7,512,052</kbd>&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfUtilityInventoryTextBlock">
<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>Tabular disclosure of all information related to inventories for utilities.</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;">us-gaap_ScheduleOfUtilityInventoryTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R42.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock', window );">Schedule of Costs incurred on uncompleted contracts and Estimated earnings</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:220.85pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Costs incurred on uncompleted contracts</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>12,499,313</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">10,576,401&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Estimated earnings</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>13,175,240</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">10,459,240&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"></td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>25,674,553</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">21,035,641&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Less billings to date</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>24,696,121</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">22,280,350&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"></td><td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>978,432</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">(1,244,709)</kbd>&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock">
<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>Tabular disclosure of long-term contract or program.</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;">us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R43.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock', window );">Schedule of Amounts are included in the accompanying balance sheets</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:220.6pt" valign="top"></td><td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.8pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center">&#160;</p>
</td><td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Costs and estimated earnings in excess of billings</p>
</td><td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><b>5,360,499</b></kbd>&#160;</p>
</td><td style="width:4.8pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">4,356,565&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Billings in excess of costs and estimated earnings </p>
</td><td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><b>4,382,067</b></kbd>&#160;</p>
</td><td style="width:4.8pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">5,601,274&#160;</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.6pt" valign="top"></td><td style="width:67.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"><b>978,432</b></kbd>&#160;</p>
</td><td style="width:4.8pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">(1,244,709)</kbd>&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock">
<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>Represents the textual narrative disclosure of Schedule of Amounts are included in the accompanying balance sheets, during the indicated time period.</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;">fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<FILENAME>R44.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_SchduleOfStatusOfProjectsInProgressTextBlock', window );">Schdule of Status of Projects in progress</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="border-collapse:collapse"><tr><td style="width:252pt" valign="top"></td><td style="width:93.6pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:93.6pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:252pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Number of Projects in progress</p>
</td><td style="width:93.6pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>21</b></p>
</td><td style="width:93.6pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">19</p>
</td></tr>
<tr><td style="width:252pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Aggregate percent complete</p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>65%</b></p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">53%</p>
</td></tr>
<tr><td style="width:252pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Aggregate amount remaining</p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>$13,100,204</b></p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$18,650,312</p>
</td></tr>
<tr><td style="width:252pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">Percentage of total value invoiced to customer</p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>64%</b></p>
</td><td style="width:93.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">56%</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_SchduleOfStatusOfProjectsInProgressTextBlock">
<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>Represents the textual narrative disclosure of Schdule of Status of Projects in progress, during the indicated time period.</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;">fil_SchduleOfStatusOfProjectsInProgressTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<FILENAME>R45.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock', window );">Schedule of Maintenance and Other Inventory</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:356.4pt"><tr><td style="width:218.45pt;border-bottom:0.5pt solid #000000" valign="top"></td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center">&#160;</p>
</td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:218.45pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Maintenance and other inventory</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ 1,872,931</b></p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ 2,416,748</p>
</td></tr>
<tr><td style="width:218.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Less allowance for obsolescence</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>765,056</b></p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">836,919</p>
</td></tr>
<tr><td style="width:218.45pt" valign="top"></td><td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ 1,107,875</b></p>
</td><td style="width:4.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ 1,579,829</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock">
<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>Represents the textual narrative disclosure of Schedule of Maintenance and Other Inventory, during the indicated time period.</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;">fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R46.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>6. Property and Equipment: Schedule of Property, Plant and Equipment (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Schedule of Property, Plant and Equipment</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:220.85pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:-13.9pt;margin-right:6.15pt;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Land</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>195,220</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">195,220</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Buildings and improvements</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>10,160,842</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">10,054,459</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Machinery and equipment</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>17,950,644</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">15,956,076</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Office furniture and equipment</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>3,193,150</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">3,113,921</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Autos and trucks</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>91,717</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">24,818</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Land improvements</p>
</td><td style="width:67.35pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>662,168</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">662,168</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"></td><td style="width:67.35pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>32,253,741</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">30,006,662</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Less accumulated depreciation</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>20,179,569</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">18,825,729</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.85pt" valign="top"></td><td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>12,074,172</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">11,180,933</kbd>&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentTextBlock">
<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>Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-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;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R47.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>8. Accrued Expenses: Schedule of Accrued Expenses (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Schedule of Accrued Expenses</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:220.1pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:68.05pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Customer deposits</p>
</td><td style="width:68.05pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>104,825</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">285,689</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Personnel costs</p>
</td><td style="width:68.05pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>3,214,157</b></kbd>&#160;</p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">3,763,777</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Other</p>
</td><td style="width:68.05pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>753,454</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">614,997</kbd>&#160;</p>
</td></tr>
<tr><td style="width:220.1pt;border-bottom:0.5pt solid #000000" valign="top"></td><td style="width:68.05pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>4,072,436</b></kbd>&#160;</p>
</td><td style="width:4.7pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">4,664,463</kbd>&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<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>Tabular disclosure of the components of accrued liabilities.</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;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R48.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>9. Sales: Disaggregation of Sales Revenue (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Sales Revenue</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:216.1pt" valign="top"></td><td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><span style="color:#000080"><b>202</b><b>5</b></span></p>
</td><td style="width:12pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:216.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Structural</p>
</td><td style="width:65.95pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ 14,827,044</b></p>
</td><td style="width:12pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:65.95pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ 14,406,863</p>
</td></tr>
<tr><td style="width:216.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Aerospace / Defense</p>
</td><td style="width:65.95pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>27,134,038</b></p>
</td><td style="width:12pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:65.95pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">26,675,321</p>
</td></tr>
<tr><td style="width:216.1pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Industrial</p>
</td><td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>4,331,643</b></p>
</td><td style="width:12pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">3,500,623</p>
</td></tr>
<tr><td style="width:216.1pt" valign="top"></td><td style="width:65.95pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>$ 46,292,725</b></p>
</td><td style="width:12pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:65.95pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">$ 44,582,807</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<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>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<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;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R49.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Schedule of Components of Income Tax Expense (Benefit)</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:391.55pt"><tr><td style="width:216.5pt;border-bottom:0.75pt solid #000000" valign="bottom"></td><td colspan="2" style="width:85pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:18.15pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td colspan="2" style="width:4.75pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">Current tax provision:</p>
</td><td colspan="2" style="width:85pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td colspan="2" style="width:4.75pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Federal </p>
</td><td style="width:67.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>2,204,000&#160;</b></kbd>&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">2,365,000&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">State</p>
</td><td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>1,000&#160;</b></kbd>&#160;</p>
</td><td style="width:18.15pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">1,000&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"></td><td style="width:67.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>2,205,000&#160;</b></kbd>&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">2,366,000&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred tax provision (benefit):</p>
</td><td style="width:67.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Federal</p>
</td><td style="width:67.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>(585,000)</b></kbd>&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(444,000)</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">State</p>
</td><td style="width:67.5pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>-&#160;</b></kbd>&#160;</p>
</td><td style="width:18.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">-&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"></td><td style="width:67.5pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>(585,000)</b></kbd>&#160;</p>
</td><td style="width:18.15pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(444,000)</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
<tr><td colspan="2" style="width:234pt" valign="bottom"></td><td style="width:67.5pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"><b>1,620,000&#160;</b></kbd>&#160;</p>
</td><td style="width:18.15pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.15pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">1,922,000&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<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>Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<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;">us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R50.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Schedule of Effective Income Tax Rate Reconciliation</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:218.35pt" valign="top"></td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Computed tax provision at the expected statutory rate</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>2,317,000&#160;</b></kbd>&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">2,293,400&#160;</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Tax effect of permanent differences:</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Research tax credits</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>(489,692)</b></kbd>&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(407,675)</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Foreign-derived intangible income deduction</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>(224,700)</b></kbd>&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">(142,100)</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Stock option costs</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>(11,682)</b></kbd>&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">48,500&#160;</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000">Other permanent differences</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>24,300&#160;</b></kbd>&#160;</p>
</td><td style="width:4.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">2,800&#160;</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Other</p>
</td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>4,774&#160;</b></kbd>&#160;</p>
</td><td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">127,075&#160;</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"></td><td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"><b>1,620,000&#160;</b></kbd>&#160;</p>
</td><td style="width:4.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt">1,922,000&#160;</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:218.35pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Effective income tax rate</p>
</td><td style="width:66.65pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>14.7%</b></kbd>&#160;</p>
</td><td style="width:4.65pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:66.65pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt">17.6%</kbd>&#160;</p>
</td><td style="width:3.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<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>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</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/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-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;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R51.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Schedule of Deferred Tax Assets and Liabilities</a></td>
<td class="text"><p style="font:11pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:216.6pt" valign="top"></td><td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred tax assets:</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Allowance for estimated credit losses</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>118,500&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">6,200&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Tax inventory adjustment</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>52,600&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">57,300&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Allowance for obsolete inventory</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>165,500&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">188,100&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Accrued vacation</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>169,600&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">163,000&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Warranty reserve</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>112,500&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">100,700&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">R&amp;D capitalization</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>2,111,200&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">1,479,800&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Stock options issued for services</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>117,700&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">181,200&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"></td><td style="width:67.25pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>2,847,600&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt;border-top:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">2,176,300&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Deferred tax liabilities:</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000">Excess tax depreciation</p>
</td><td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>(1,249,600)</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">(1,163,685)</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:216.6pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000">Net deferred tax assets</p>
</td><td style="width:67.25pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"><b>$</b></kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"><b>1,598,000&#160;</b></kbd>&#160;</p>
</td><td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.25pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt">1,012,615&#160;</kbd>&#160;</p>
</td><td style="width:4.45pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<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>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-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;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R52.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Schedule of Earnings Per Common Share</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:388.8pt"><tr><td style="width:258.7pt" valign="top"></td><td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:258.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000">Average common shares outstanding</p>
</td><td style="width:62.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>3,131,134</b></p>
</td><td style="width:4.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:62.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">3,353,077</p>
</td></tr>
<tr><td style="width:258.7pt" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000">Common shares issuable under stock option plans</p>
</td><td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>147,555</b></p>
</td><td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">135,711</p>
</td></tr>
<tr><td style="width:258.7pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000">Average common shares outstanding assuming dilution</p>
</td><td style="width:62.7pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>3,278,689</b></p>
</td><td style="width:4.7pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:62.7pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">3,488,788</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<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>Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-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;">us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R53.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>13. Stock Option Plans: Schedule of Fair Value Assumptions (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_FairValueOptionTextBlock', window );">Schedule of Fair Value Assumptions</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:217.5pt" valign="top"></td><td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:7.5pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td></tr>
<tr><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Risk-free interest rate</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>3.87%</b></p>
</td><td style="width:7.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">4.00%</p>
</td></tr>
<tr><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Expected life in years</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>4.2</b></p>
</td><td style="width:7.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">4.3</p>
</td></tr>
<tr><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Expected volatility </p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>39%</b></p>
</td><td style="width:7.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">37%</p>
</td></tr>
<tr style="height:4pt"><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">Expected dividend yield</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>0%</b></p>
</td><td style="width:7.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">0%</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueOptionTextBlock">
<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 entire disclosure for a company's election to apply the fair value option for measurement and reporting of eligible financial assets and liabilities (as defined), as well as certain other eligible items (as defined) included in the statement of financial position, whether such option is elected for a single eligible item or a group of similar eligible items and is in addition to other disclosures concerning fair value which the company may be required to provide. Such disclosure might be expected to include: (1) for items included in the statement of financial position: (a) the reasons for electing a fair value option for each eligible item or group of similar eligible items; (b) if the fair value option is elected for some but not all eligible items within a group of similar eligible items: (i) a description of those similar items and the reasons for partial election and (ii) information of how the group of similar items relates to individual balance sheet line items; (c) for each line item in the statement of financial position that includes an item or items for which the fair value option has been elected: (i) information of how each line item in the statement of financial position relates to major categories of assets and liabilities presented in accordance with other fair value disclosures and (ii) the aggregate carrying amount of ineligible items included in each line item in the balance sheet, if any; (d) the difference between the aggregate fair value and the aggregate unpaid principal balance (assuming contractual principal amounts and fair value option elected) of: (i) loans and long-term receivables (other than securities otherwise reported at fair value) and (ii) long-term debt instruments; (e) for loans held as assets for which the fair value option has been elected: (i) the aggregate fair value of loans that are 90 days or more past due, (ii) if the policy is to recognize interest income separately from other changes in fair value, the aggregate fair value of loans in nonaccrual status, and (iii) the difference between the aggregate fair value and the aggregate unpaid principal balance for loans that are 90 days or more past due, in nonaccrual status, or both; (f) for investments that would have been accounted for under the equity method if the entity had not chosen to apply the fair value option, the information required for such investments, if material either individually or in the aggregate; (2) for items included in the income statement: (a) the amounts of gains and losses from fair value changes included in earnings and in which line in the income statement those gains and losses are reported whether or not combined with gains and losses from items required to be accounted for at fair value; (b) a description of how interest and dividends are measured and where they are reported in the income statement; (c) for loans and other receivables held as assets: (i) the estimated amount of gains or losses included in earnings attributable to changes in instrument-specific credit risk and (ii) how the gains or losses attributable to changes in instrument-specific credit risk were determined; (d) for liabilities with fair values that have been significantly affected during the reporting period by changes in the instrument-specific credit risk: (i) the estimated amount of gains and losses from fair value changes included in earnings that are attributable to changes in the instrument-specific credit risk, (ii) qualitative information about the reasons for those changes, and (iii) how the gains and losses attributable to changes in instrument-specific credit risk were determined; and (3) certain other disclosures as required or determined to be provided.</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/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-30<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-30<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482881/825-10-55-13<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482881/825-10-55-11<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482881/825-10-55-13<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482881/825-10-55-13<br><br>Reference 12: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482881/825-10-55-11<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/825/tableOfContent<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 825<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-32<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;">us-gaap_FairValueOptionTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>R54.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>13. Stock Option Plans: Schedule of Stock Options Activity (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock', window );">Schedule of Stock Options Activity</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:171.2pt" valign="bottom"></td><td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Shares</b></p>
</td><td style="width:1.9pt;border-bottom:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td><td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Weighted Average Exercise Price</b></p>
</td><td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"><b>Intrinsic Value</b></p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Outstanding - May 31, 2023</p>
</td><td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>333,000</b></p>
</td><td style="width:1.9pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">12.70</kbd>&#160;</p>
</td><td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">2,016,961</kbd>&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Options granted</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>85,000</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">34.04</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options exercised</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>76,750</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">12.54</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options expired</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>750</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">-</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Outstanding - May 31, 2024</p>
</td><td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>340,500</b></p>
</td><td style="width:1.9pt;border-top:0.5pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">18.07</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">11,185,815</kbd>&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Options granted</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>89,800</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">37.24</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options exercised</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>31,000</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">11.51</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;&#160;&#160;&#160;Less: options expired</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>-</b></p>
</td><td style="width:1.9pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">-</kbd>&#160;</p>
</td><td style="width:62.3pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
<tr style="height:12.55pt"><td style="width:171.2pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">Outstanding - May 31, 2025</p>
</td><td style="width:62.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"><b>399,300</b></p>
</td><td style="width:1.9pt;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:62.3pt;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt">22.89</kbd>&#160;</p>
</td><td style="width:62.3pt;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000"><kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt">$</kbd><kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt">6,341,305</kbd>&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock">
<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>Tabular disclosure of the change in stock options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<FILENAME>R55.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable</a></td>
<td class="text"><p style="font:6pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:367.2pt"><tr><td colspan="4" style="width:360pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>Outstanding and Exercisable</b></p>
</td></tr>
<tr><td style="width:144pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;margin-right:-9pt;color:#000000;text-align:center">Range of Exercise Prices</p>
</td><td style="width:50.4pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Number of Options</p>
</td><td style="width:100.8pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Remaining Years of Contractual Life</p>
</td><td colspan="2" style="width:72pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Exercise Price</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$10.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">45,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">5.8</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.71</p>
</td></tr>
<tr style="height:12.15pt"><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$10.01-$11.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">15,250</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">3.7</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$10.21</p>
</td></tr>
<tr style="height:12.15pt"><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$11.01-$12.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">99,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">5.4</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$11.72</p>
</td></tr>
<tr style="height:12.15pt"><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$12.01-$13.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">6,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">1.7</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$12.41</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$13.01-$14.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">10,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">1.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$13.80</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$16.01-$17.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">10,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">0.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$16.40</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$19.01-$20.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">47,500</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">7.3</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$19.89</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$20.01-$21.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">33,750</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">8.4</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$20.78</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$30.01-$31.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">43,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">9.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$30.55</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$43.01-$44.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">46,800</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">9.4</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$43.38</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$46.01-$47.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">43,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">8.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$46.99</p>
</td></tr>
<tr><td style="width:144pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$47.00</p>
</td><td style="width:50.4pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">399,300</p>
</td><td style="width:100.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">6.9</p>
</td><td colspan="2" style="width:72pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$22.89</p>
</td></tr>
</table>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">The following table summarizes information about stock options outstanding at May 31, 2024:</p>
<p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:367.2pt"><tr><td colspan="4" style="width:360pt;border-bottom:0.75pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>Outstanding and Exercisable</b></p>
</td></tr>
<tr><td style="width:144pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;margin-right:-9pt;color:#000000;text-align:center">Range of Exercise Prices</p>
</td><td style="width:50.4pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Number of Options</p>
</td><td style="width:100.8pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Remaining Years of Contractual Life</p>
</td><td colspan="2" style="width:72pt;border-top:0.75pt solid #000000" valign="bottom"><p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center">Weighted Average Exercise Price</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$10.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">55,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">7.0</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.67</p>
</td></tr>
<tr style="height:12.15pt"><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$10.01-$11.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">15,250</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">4.7</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$10.21</p>
</td></tr>
<tr style="height:12.15pt"><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$11.01-$12.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">106,250</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">6.5</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$11.72</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$12.01-$13.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">19,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">1.5</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$12.36</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$13.01-$14.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">10,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$13.80</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$16.01-$17.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">10,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">1.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$16.40</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$19.01-$20.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">47,500</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">8.3</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$19.89</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$20.01-$21.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">34,500</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">9.4</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$20.78</p>
</td></tr>
<tr><td style="width:144pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$46.01-$47.00</p>
</td><td style="width:50.4pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">43,000</p>
</td><td style="width:100.8pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">9.9</p>
</td><td colspan="2" style="width:72pt" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$46.99</p>
</td></tr>
<tr><td style="width:144pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$ &#160;9.01-$47.00</p>
</td><td style="width:50.4pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">340,500</p>
</td><td style="width:100.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">6.9</p>
</td><td colspan="2" style="width:72pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$18.07</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock">
<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>Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding and exercisable options that are fully vested and expected to vest. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R56.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TableTextBlockSupplementAbstract', window );"><strong>Tables/Schedules</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_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock', window );">Schedule of Cash Flow, Supplemental Disclosures</a></td>
<td class="text"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
<table style="margin:0 auto;border-collapse:collapse;width:360pt"><tr><td style="width:217.5pt;border-bottom:0.75pt solid #000000" valign="top"></td><td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>2025</b></p>
</td><td style="width:3.75pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td><td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">2024</p>
</td><td style="width:3.75pt;border-bottom:0.75pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">&#160;</p>
</td></tr>
<tr><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td style="width:3.75pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:67.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:3.75pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;Interest paid</p>
</td><td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>None</b></p>
</td><td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">None</p>
</td><td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:12.3pt"><td style="width:217.5pt" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify">&#160;</p>
</td><td style="width:67.5pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right">&#160;</p>
</td><td style="width:3.75pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:67.5pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td><td style="width:3.75pt;border-top:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right">&#160;</p>
</td></tr>
<tr style="height:12.3pt"><td style="width:217.5pt;border-bottom:0.5pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"> &#160;Income taxes paid</p>
</td><td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"><b>$2,425,000</b></p>
</td><td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000080">&#160;</p>
</td><td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center">$2,010,000</p>
</td><td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"><p style="font:10pt Times New Roman;margin:0;color:#000000">&#160;</p>
</td></tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock">
<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>Tabular disclosure of supplemental cash flow information for the periods presented.</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;">us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</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_us-gaap_TableTextBlockSupplementAbstract">
<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 );">- References</a><div><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;">us-gaap_TableTextBlockSupplementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>R57.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>1. Summary of Significant Accounting Policies: Stock-Based Compensation (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_StockOptionPlanExpense', window );">Stock options issued for services</a></td>
<td class="nump">$ 1,222,509<span></span>
</td>
<td class="nump">$ 1,047,252<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockOptionPlanExpense">
<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>Amount of noncash expense for option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<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;">us-gaap_StockOptionPlanExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R58.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="1"><div style="width: 200px;"><strong>2. Accounts and Other Receivables: Accounts and Other Receivables (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_AccountsReceivableGrossCurrent', window );">Accounts Receivable, before Allowance for Credit Loss, Current</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 6,164,251<span></span>
</td>
<td class="nump">$ 5,241,874<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_us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables', window );">Less allowance for estimated credit losses</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">564,466<span></span>
</td>
<td class="nump">29,466<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsAndOtherReceivablesNetCurrent', window );">Accounts and other receivables, net (Note 2)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">5,599,785<span></span>
</td>
<td class="nump">5,212,408<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=fil_CustomersMember', window );">Customers</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_AccountsReceivableGrossCurrent', window );">Accounts Receivable, before Allowance for Credit Loss, Current</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">6,164,251<span></span>
</td>
<td class="nump">5,241,874<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=fil_CustomersRetentionMember', window );">Customers - retention</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_AccountsReceivableGrossCurrent', window );">Accounts Receivable, before Allowance for Credit Loss, Current</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Note 2</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsAndOtherReceivablesNetCurrent">
<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>Amount, after allowance, receivable from customers, clients, or other third-parties, and receivables classified as other due within one year or the normal operating cycle, if longer.</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;">us-gaap_AccountsAndOtherReceivablesNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableGrossCurrent">
<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>Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</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/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-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;">us-gaap_AccountsReceivableGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables">
<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 valuation allowance as of the balance sheet date to reduce the gross amount of receivables to estimated net realizable value, which would be presented in parentheses on the face of the balance sheet.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-4<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;">us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=fil_CustomersMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=fil_CustomersMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=fil_CustomersRetentionMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=fil_CustomersRetentionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<FILENAME>R59.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>3. Inventory: Schedule of Inventory (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_InventoryGross', window );">Inventory, Gross</a></td>
<td class="nump">$ 8,136,321<span></span>
</td>
<td class="nump">$ 7,571,052<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_us-gaap_InventoryAdjustments', window );">Less allowance for obsolescence</a></td>
<td class="nump">23,000<span></span>
</td>
<td class="nump">59,000<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventory, Net</a></td>
<td class="nump">8,113,321<span></span>
</td>
<td class="nump">7,512,052<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PublicUtilitiesInventoryAxis=us-gaap_PublicUtilitiesInventoryRawMaterialsMember', window );">Raw Materials</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_InventoryGross', window );">Inventory, Gross</a></td>
<td class="nump">627,616<span></span>
</td>
<td class="nump">886,947<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PublicUtilitiesInventoryAxis=fil_WorkInProcessMember', window );">Work-in-process</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_InventoryGross', window );">Inventory, Gross</a></td>
<td class="nump">7,222,613<span></span>
</td>
<td class="nump">6,412,497<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PublicUtilitiesInventoryAxis=fil_FinishedGoodsMember', window );">Finished goods</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_InventoryGross', window );">Inventory, Gross</a></td>
<td class="nump">$ 286,092<span></span>
</td>
<td class="nump">$ 271,608<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryAdjustments">
<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>Amount of inventory reserves for last-in first-out (LIFO) and other inventory valuation methods.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-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;">us-gaap_InventoryAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryGross">
<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>Gross amount, as of the balance sheet date, of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_InventoryGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<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>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</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/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PublicUtilitiesInventoryAxis=us-gaap_PublicUtilitiesInventoryRawMaterialsMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PublicUtilitiesInventoryAxis=us-gaap_PublicUtilitiesInventoryRawMaterialsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PublicUtilitiesInventoryAxis=fil_WorkInProcessMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PublicUtilitiesInventoryAxis=fil_WorkInProcessMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PublicUtilitiesInventoryAxis=fil_FinishedGoodsMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PublicUtilitiesInventoryAxis=fil_FinishedGoodsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<FILENAME>R60.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_CostsIncurredOnUncompletedContracts', window );">Costs incurred on uncompleted contracts</a></td>
<td class="nump">$ 12,499,313<span></span>
</td>
<td class="nump">$ 10,576,401<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_CostsIncurredOnUncompletedContractsEstimatedEarnings', window );">Costs incurred on uncompleted contracts, Estimated earnings</a></td>
<td class="nump">13,175,240<span></span>
</td>
<td class="nump">10,459,240<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_CostsIncurredOnUncompletedContractsGross', window );">Costs incurred on uncompleted contracts, Gross</a></td>
<td class="nump">25,674,553<span></span>
</td>
<td class="nump">21,035,641<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_CostsIncurredOnUncompletedContractsBillingsToDate', window );">Costs incurred on uncompleted contracts, Billings to date</a></td>
<td class="nump">24,696,121<span></span>
</td>
<td class="nump">22,280,350<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_CostsIncurredOnUncompletedContractsNet', window );">Costs incurred on uncompleted contracts, Net</a></td>
<td class="nump">$ 978,432<span></span>
</td>
<td class="num">$ (1,244,709)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_CostsIncurredOnUncompletedContracts">
<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>Represents the monetary amount of Costs incurred on uncompleted contracts, during the indicated time period.</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;">fil_CostsIncurredOnUncompletedContracts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_fil_CostsIncurredOnUncompletedContractsBillingsToDate">
<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>Represents the monetary amount of Costs incurred on uncompleted contracts, Billings to date, during the indicated time period.</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;">fil_CostsIncurredOnUncompletedContractsBillingsToDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_fil_CostsIncurredOnUncompletedContractsEstimatedEarnings">
<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>Represents the monetary amount of Costs incurred on uncompleted contracts, Estimated earnings, during the indicated time period.</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;">fil_CostsIncurredOnUncompletedContractsEstimatedEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_fil_CostsIncurredOnUncompletedContractsGross">
<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>Represents the monetary amount of Costs incurred on uncompleted contracts, Gross, during the indicated time period.</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;">fil_CostsIncurredOnUncompletedContractsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_fil_CostsIncurredOnUncompletedContractsNet">
<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>Represents the monetary amount of Costs incurred on uncompleted contracts, Net, during the indicated time period.</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;">fil_CostsIncurredOnUncompletedContractsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>R61.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_CostsAndEstimatedEarningsInExcessOfBillings', window );">Costs and estimated earnings in excess of billings</a></td>
<td class="nump">$ 5,360,499<span></span>
</td>
<td class="nump">$ 4,356,565<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_BillingsInExcessOfCostsAndEstimatedEarnings', window );">Billings in excess of costs and estimated earnings</a></td>
<td class="nump">4,382,067<span></span>
</td>
<td class="nump">5,601,274<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_CostsIncurredOnUncompletedContractsNet', window );">Costs incurred on uncompleted contracts, Net</a></td>
<td class="nump">$ 978,432<span></span>
</td>
<td class="num">$ (1,244,709)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_BillingsInExcessOfCostsAndEstimatedEarnings">
<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>Represents the monetary amount of Billings in excess of costs and estimated earnings, during the indicated time period.</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;">fil_BillingsInExcessOfCostsAndEstimatedEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_fil_CostsAndEstimatedEarningsInExcessOfBillings">
<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>Represents the monetary amount of Costs and estimated earnings in excess of billings, during the indicated time period.</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;">fil_CostsAndEstimatedEarningsInExcessOfBillings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_fil_CostsIncurredOnUncompletedContractsNet">
<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>Represents the monetary amount of Costs incurred on uncompleted contracts, Net, during the indicated time period.</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;">fil_CostsIncurredOnUncompletedContractsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>75
<FILENAME>R62.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Details)<br></strong></div></th>
<th class="th">
<div>May 31, 2025 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>May 31, 2024 </div>
<div>USD ($)</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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_NumberOfProjectsInProgress', window );">Number of Projects in progress</a></td>
<td class="nump">21<span></span>
</td>
<td class="nump">19<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_AggregatePercentComplete', window );">Aggregate percent complete</a></td>
<td class="nump">65.00%<span></span>
</td>
<td class="nump">53.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_AggregateAmountRemaining', window );">Aggregate amount remaining</a></td>
<td class="nump">$ 13,100,204<span></span>
</td>
<td class="nump">$ 18,650,312<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_PercentageOfTotalValueInvoicedToCustomer', window );">Percentage of total value invoiced to customer</a></td>
<td class="nump">64.00%<span></span>
</td>
<td class="nump">56.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_AggregateAmountRemaining">
<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>Represents the monetary amount of Aggregate amount remaining, as of the indicated date.</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;">fil_AggregateAmountRemaining</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_AggregatePercentComplete">
<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>Represents the percentage value of Aggregate percent complete, as of the indicated date.</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;">fil_AggregatePercentComplete</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_NumberOfProjectsInProgress">
<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>Represents the Number of Projects in progress, as of the indicated date.</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;">fil_NumberOfProjectsInProgress</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:decimalItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_PercentageOfTotalValueInvoicedToCustomer">
<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>Represents the percentage value of Percentage of total value invoiced to customer, as of the indicated date.</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;">fil_PercentageOfTotalValueInvoicedToCustomer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>76
<FILENAME>R63.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>4. Costs and Estimated Earnings on Uncompleted Contracts (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings', window );">Revenues Recognized For amounts included in billings in excess of costs and estimated earnings</a></td>
<td class="nump">$ 5,601,000<span></span>
</td>
<td class="nump">$ 1,992,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings">
<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>Represents the monetary amount of Revenues Recognized For amounts included in billings in excess of costs and estimated earnings, during the indicated time period.</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;">fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>77
<FILENAME>R64.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_MaintenanceAndOtherInventoryGross', window );">Maintenance and other inventory, Gross</a></td>
<td class="nump">$ 1,872,931<span></span>
</td>
<td class="nump">$ 2,416,748<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_MaintenanceAndOtherInventoryAllowanceForObsolescence', window );">Maintenance and other inventory, allowance for obsolescence</a></td>
<td class="nump">765,056<span></span>
</td>
<td class="nump">836,919<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_MaintenanceAndOtherInventoryNet', window );">Maintenance and other inventory, Net</a></td>
<td class="nump">$ 1,107,875<span></span>
</td>
<td class="nump">$ 1,579,829<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_MaintenanceAndOtherInventoryAllowanceForObsolescence">
<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>Represents the monetary amount of Maintenance and other inventory, allowance for obsolescence, as of the indicated date.</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;">fil_MaintenanceAndOtherInventoryAllowanceForObsolescence</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_MaintenanceAndOtherInventoryGross">
<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>Represents the monetary amount of Maintenance and other inventory, Gross, as of the indicated date.</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;">fil_MaintenanceAndOtherInventoryGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_MaintenanceAndOtherInventoryNet">
<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>Represents the monetary amount of Maintenance and other inventory, Net, as of the indicated date.</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;">fil_MaintenanceAndOtherInventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<FILENAME>R65.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>5. Maintenance and Other Inventory (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_InventoryDisposedOf', window );">Inventory disposed of</a></td>
<td class="nump">$ 107,000<span></span>
</td>
<td class="nump">$ 791,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_ProvisionForPotentialInventoryObsolescence', window );">Provision for potential inventory obsolescence</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 386,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_InventoryDisposedOf">
<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>Represents the monetary amount of Inventory disposed of, during the indicated time period.</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;">fil_InventoryDisposedOf</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_fil_ProvisionForPotentialInventoryObsolescence">
<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>Represents the monetary amount of Provision for potential inventory obsolescence, during the indicated time period.</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;">fil_ProvisionForPotentialInventoryObsolescence</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>79
<FILENAME>R66.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="1"><div style="width: 200px;"><strong>6. Property and Equipment: Schedule of Property, Plant and Equipment (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, Plant and Equipment, Gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 32,253,741<span></span>
</td>
<td class="nump">$ 30,006,662<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_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less accumulated depreciation</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">20,179,569<span></span>
</td>
<td class="nump">18,825,729<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net (Note 6)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">12,074,172<span></span>
</td>
<td class="nump">11,180,933<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember', window );">Land</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, Plant and Equipment, Gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">195,220<span></span>
</td>
<td class="nump">195,220<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember', window );">Building Improvements</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, Plant and Equipment, Gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">10,160,842<span></span>
</td>
<td class="nump">10,054,459<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, Plant and Equipment, Gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">17,950,644<span></span>
</td>
<td class="nump">15,956,076<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, Plant and Equipment, Gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">3,193,150<span></span>
</td>
<td class="nump">3,113,921<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_VehiclesMember', window );">Vehicles</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, Plant and Equipment, Gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">91,717<span></span>
</td>
<td class="nump">24,818<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandImprovementsMember', window );">Land Improvements</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, Plant and Equipment, Gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 662,168<span></span>
</td>
<td class="nump">$ 662,168<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Note 6</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<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>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</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/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-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;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<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>Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</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/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-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;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<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>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-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;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_VehiclesMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_VehiclesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandImprovementsMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>R67.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>6. Property and Equipment (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation, Depletion and Amortization</a></td>
<td class="nump">$ 1,708,849<span></span>
</td>
<td class="nump">$ 1,690,239<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_us-gaap_OtherCommitment', window );">Commitments to make capital expenditures</a></td>
<td class="nump">$ 1,853,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationDepletionAndAmortization">
<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 aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<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;">us-gaap_DepreciationDepletionAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_OtherCommitment">
<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>Minimum amount of other commitment not otherwise specified in the taxonomy. Excludes commitments explicitly modeled in the taxonomy, including but not limited to, long-term and short-term purchase commitments, recorded and unrecorded purchase obligations, supply commitments, registration payment arrangements, leases, debt, product warranties, guarantees, environmental remediation obligations, and pensions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<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;">us-gaap_OtherCommitment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<FILENAME>R68.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>7. Short-Term Borrowings (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>May 31, 2024</div></th>
<th class="th"><div>May 31, 2025</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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_LineOfCredit', window );">Long-Term Line of Credit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,000,000<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_us-gaap_LineOfCreditFacilityAverageOutstandingAmount', window );">Line of Credit Facility, Average Outstanding Amount</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_OutstandingChecks', window );">Outstanding checks</a></td>
<td class="nump">$ 372,347<span></span>
</td>
<td class="nump">$ 97,673<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_OutstandingChecks">
<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>Represents the monetary amount of Outstanding checks, as of the indicated date.</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;">fil_OutstandingChecks</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCredit">
<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 carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-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;">us-gaap_LineOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityAverageOutstandingAmount">
<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>Average amount borrowed under the credit facility during the period.</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;">us-gaap_LineOfCreditFacilityAverageOutstandingAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>82
<FILENAME>R69.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="1"><div style="width: 200px;"><strong>8. Accrued Expenses: Schedule of Accrued Expenses (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses (Note 8)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 4,072,436<span></span>
</td>
<td class="nump">$ 4,664,463<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByLiabilityClassAxis=fil_CustomerDepositsMember', window );">Customer deposits</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses (Note 8)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">104,825<span></span>
</td>
<td class="nump">285,689<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByLiabilityClassAxis=fil_PersonnelCostsMember', window );">Personnel costs</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses (Note 8)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">3,214,157<span></span>
</td>
<td class="nump">3,763,777<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByLiabilityClassAxis=fil_OtherMember', window );">Other</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses (Note 8)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 753,454<span></span>
</td>
<td class="nump">$ 614,997<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Note 8</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<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>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-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;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByLiabilityClassAxis=fil_CustomerDepositsMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByLiabilityClassAxis=fil_CustomerDepositsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByLiabilityClassAxis=fil_PersonnelCostsMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByLiabilityClassAxis=fil_PersonnelCostsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByLiabilityClassAxis=fil_OtherMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByLiabilityClassAxis=fil_OtherMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<FILENAME>R70.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>9. Sales: Disaggregation of Sales Revenue (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_Revenues', window );">Sales, net (Note 9)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 46,292,725<span></span>
</td>
<td class="nump">$ 44,582,807<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=fil_StructuralMember', window );">Structural</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_Revenues', window );">Sales, net (Note 9)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">14,827,044<span></span>
</td>
<td class="nump">14,406,863<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=fil_AerospaceDefenseMember', window );">Aerospace / Defense</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_Revenues', window );">Sales, net (Note 9)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">27,134,038<span></span>
</td>
<td class="nump">26,675,321<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=fil_IndustrialMember', window );">Industrial</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_us-gaap_Revenues', window );">Sales, net (Note 9)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 4,331,643<span></span>
</td>
<td class="nump">$ 3,500,623<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Note 9</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Revenues">
<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>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</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/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-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;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_StatementBusinessSegmentsAxis=fil_StructuralMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=fil_StructuralMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=fil_AerospaceDefenseMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=fil_AerospaceDefenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=fil_IndustrialMember">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=fil_IndustrialMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>84
<FILENAME>R71.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract', window );"><strong>Current tax provision</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</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_us-gaap_CurrentFederalTaxExpenseBenefit', window );">Federal</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 2,204,000<span></span>
</td>
<td class="nump">$ 2,365,000<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_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,000<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit', window );">Current Federal, State and Local, Tax Expense (Benefit)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">2,205,000<span></span>
</td>
<td class="nump">2,366,000<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_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract', window );"><strong>Deferred tax provision (benefit)</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</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_us-gaap_DeferredFederalIncomeTaxExpenseBenefit', window );">Federal</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(585,000)<span></span>
</td>
<td class="num">(444,000)<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_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit', window );">Deferred Federal, State and Local, Tax Expense (Benefit)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(585,000)<span></span>
</td>
<td class="num">(444,000)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes (Note 10)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 1,620,000<span></span>
</td>
<td class="nump">$ 1,922,000<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Note 10Note 10</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit">
<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>Amount of current federal, state, and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national, regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<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;">us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract">
<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 );">- References</a><div><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;">us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_CurrentFederalTaxExpenseBenefit">
<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>Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<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;">us-gaap_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_CurrentStateAndLocalTaxExpenseBenefit">
<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>Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<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;">us-gaap_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_DeferredFederalIncomeTaxExpenseBenefit">
<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>Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<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;">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit">
<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>Amount of deferred federal, state, and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national, regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<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;">us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract">
<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 );">- References</a><div><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;">us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit">
<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>Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<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;">us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_IncomeTaxExpenseBenefit">
<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>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</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/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-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;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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>XML
<SEQUENCE>85
<FILENAME>R72.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</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_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate', window );">Computed tax provision at the expected statutory rate</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 2,317,000<span></span>
</td>
<td class="nump">$ 2,293,400<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_us-gaap_IncomeTaxReconciliationTaxCreditsAbstract', window );"><strong>Tax effect of permanent differences</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</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_us-gaap_IncomeTaxReconciliationTaxCreditsResearch', window );">Research tax credits</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(489,692)<span></span>
</td>
<td class="num">(407,675)<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_us-gaap_IncomeTaxReconciliationTaxCreditsForeign', window );">Foreign-derived intangible income deduction</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(224,700)<span></span>
</td>
<td class="num">(142,100)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_StockOptionCosts', window );">Stock option costs</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(11,682)<span></span>
</td>
<td class="nump">48,500<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_us-gaap_IncomeTaxReconciliationOtherReconcilingItems', window );">Other permanent differences</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">24,300<span></span>
</td>
<td class="nump">2,800<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_OtherAdjustments', window );">Other Adjustments</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">4,774<span></span>
</td>
<td class="nump">127,075<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes (Note 10)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 1,620,000<span></span>
</td>
<td class="nump">$ 1,922,000<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_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Effective income tax rate</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">14.70%<span></span>
</td>
<td class="nump">17.60%<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Note 10Note 10</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_OtherAdjustments">
<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>Represents the monetary amount of Other Adjustments, during the indicated time period.</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;">fil_OtherAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_fil_StockOptionCosts">
<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>Represents the monetary amount of Stock option costs, during the indicated time period.</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;">fil_StockOptionCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_EffectiveIncomeTaxRateContinuingOperations">
<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>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</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/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<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;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</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_us-gaap_IncomeTaxExpenseBenefit">
<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>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</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/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-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;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate">
<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 amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.</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/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<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;">us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_IncomeTaxReconciliationOtherReconcilingItems">
<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>Amount of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying statutory federal (national) tax rate to pretax income (loss) from continuing operation attributable to other reconciling item. Excludes state and local income tax expense (benefit), federal tax expense (benefit), statutory income tax expense (benefit) outside of country of domicile, tax credit, nondeductible expense, deduction, income tax settlement, income tax contingency, and cross-border tax law.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-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;">us-gaap_IncomeTaxReconciliationOtherReconcilingItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_IncomeTaxReconciliationTaxCreditsAbstract">
<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 );">- References</a><div><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;">us-gaap_IncomeTaxReconciliationTaxCreditsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_IncomeTaxReconciliationTaxCreditsForeign">
<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>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign tax credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-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;">us-gaap_IncomeTaxReconciliationTaxCreditsForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_IncomeTaxReconciliationTaxCreditsResearch">
<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>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit.</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/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-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;">us-gaap_IncomeTaxReconciliationTaxCreditsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>86
<FILENAME>R73.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_DeferredTaxAssetsGrossAbstract', window );"><strong>Deferred tax assets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_AllowanceForDoubtfulReceivables', window );">Allowance for doubtful receivables</a></td>
<td class="nump">$ 118,500<span></span>
</td>
<td class="nump">$ 6,200<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_TaxInventoryAdjustment', window );">Tax inventory adjustment</a></td>
<td class="nump">52,600<span></span>
</td>
<td class="nump">57,300<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_AllowanceForObsoleteInventory', window );">Allowance for obsolete inventory</a></td>
<td class="nump">165,500<span></span>
</td>
<td class="nump">188,100<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_AccruedVacation', window );">Accrued vacation</a></td>
<td class="nump">169,600<span></span>
</td>
<td class="nump">163,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_WarrantyReserve', window );">Warranty reserve</a></td>
<td class="nump">112,500<span></span>
</td>
<td class="nump">100,700<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_RDCapitalization', window );">R&amp;D capitalization</a></td>
<td class="nump">2,111,200<span></span>
</td>
<td class="nump">1,479,800<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_StockOptionsIssuedForServices', window );">Stock options issued for services</a></td>
<td class="nump">117,700<span></span>
</td>
<td class="nump">181,200<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGross', window );">Deferred Tax Assets, Gross</a></td>
<td class="nump">2,847,600<span></span>
</td>
<td class="nump">2,176,300<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_us-gaap_DeferredTaxLiabilitiesAbstract', window );"><strong>Deferred tax liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_ExcessTaxDepreciation', window );">Excess tax depreciation</a></td>
<td class="num">(1,249,600)<span></span>
</td>
<td class="num">(1,163,685)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNet', window );">Net deferred tax assets</a></td>
<td class="nump">$ 1,598,000<span></span>
</td>
<td class="nump">$ 1,012,615<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_AccruedVacation">
<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>Represents the monetary amount of Accrued vacation, as of the indicated date.</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;">fil_AccruedVacation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_AllowanceForDoubtfulReceivables">
<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>Represents the monetary amount of Allowance for doubtful receivables, as of the indicated date.</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;">fil_AllowanceForDoubtfulReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_AllowanceForObsoleteInventory">
<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>Represents the monetary amount of Allowance for obsolete inventory, as of the indicated date.</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;">fil_AllowanceForObsoleteInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_ExcessTaxDepreciation">
<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>Represents the monetary amount of Excess tax depreciation, as of the indicated date.</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;">fil_ExcessTaxDepreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_RDCapitalization">
<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>Represents the monetary amount of R&amp;D capitalization, as of the indicated date.</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;">fil_RDCapitalization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_StockOptionsIssuedForServices">
<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>Represents the monetary amount of Stock options issued for services, as of the indicated date.</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;">fil_StockOptionsIssuedForServices</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_TaxInventoryAdjustment">
<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>Represents the monetary amount of Tax inventory adjustment, as of the indicated date.</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;">fil_TaxInventoryAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_WarrantyReserve">
<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>Represents the monetary amount of Warranty reserve, as of the indicated date.</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;">fil_WarrantyReserve</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGross">
<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>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</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/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-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;">us-gaap_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGrossAbstract">
<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 );">- References</a><div><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;">us-gaap_DeferredTaxAssetsGrossAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_DeferredTaxAssetsNet">
<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>Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-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;">us-gaap_DeferredTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesAbstract">
<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 );">- References</a><div><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;">us-gaap_DeferredTaxLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<FILENAME>R74.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Details) - shares<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_AverageCommonSharesOutstanding', window );">Average common shares outstanding</a></td>
<td class="nump">3,131,134<span></span>
</td>
<td class="nump">3,353,077<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_CommonSharesIssuableUnderStockOptionPlans', window );">Common shares issuable under stock option plans</a></td>
<td class="nump">147,555<span></span>
</td>
<td class="nump">135,711<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_AverageCommonSharesOutstandingAssumingDilution', window );">Average common shares outstanding assuming dilution</a></td>
<td class="nump">3,278,689<span></span>
</td>
<td class="nump">3,488,788<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_AverageCommonSharesOutstanding">
<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>Represents the Average common shares outstanding (number of shares), during the indicated time period.</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;">fil_AverageCommonSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</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_fil_AverageCommonSharesOutstandingAssumingDilution">
<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>Represents the Average common shares outstanding assuming dilution (number of shares), during the indicated time period.</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;">fil_AverageCommonSharesOutstandingAssumingDilution</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</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_fil_CommonSharesIssuableUnderStockOptionPlans">
<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>Represents the Common shares issuable under stock option plans (number of shares), during the indicated time period.</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;">fil_CommonSharesIssuableUnderStockOptionPlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>R75.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>12. Employee Stock Purchase Plan (Details) - shares<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_CommonSharesIssuedToEmployees', window );">Common shares issued to employees</a></td>
<td class="nump">155<span></span>
</td>
<td class="nump">372<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_SharesReservedForFurtherIssue', window );">Shares reserved for further issue</a></td>
<td class="nump">215,838<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_CommonSharesIssuedToEmployees">
<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>Represents the Common shares issued to employees (number of shares), during the indicated time period.</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;">fil_CommonSharesIssuedToEmployees</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</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_fil_SharesReservedForFurtherIssue">
<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>Represents the Shares reserved for further issue (number of shares), as of the indicated date.</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;">fil_SharesReservedForFurtherIssue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>89
<FILENAME>R76.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>13. Stock Option Plans: Schedule of Fair Value Assumptions (Details)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">3.87%<span></span>
</td>
<td class="nump">4.00%<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_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life in years</a></td>
<td class="text">4 years 2 months 12 days<span></span>
</td>
<td class="text">4 years 3 months 18 days<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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="nump">39.00%<span></span>
</td>
<td class="nump">37.00%<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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<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 estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<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 estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<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 risk-free interest rate assumption that is used in valuing an option on its own shares.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</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_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<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>Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>90
<FILENAME>R77.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>13. Stock Option Plans: Schedule of Stock Options Activity (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number, Beginning Balance</a></td>
<td class="nump">340,500<span></span>
</td>
<td class="nump">333,000<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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price, Beginning Balance</a></td>
<td class="nump">$ 18.07<span></span>
</td>
<td class="nump">$ 12.7<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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</a></td>
<td class="nump">$ 11,185,815<span></span>
</td>
<td class="nump">$ 2,016,961<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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</a></td>
<td class="nump">89,800<span></span>
</td>
<td class="nump">85,000<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_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price</a></td>
<td class="nump">$ 37.24<span></span>
</td>
<td class="nump">$ 34.04<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_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</a></td>
<td class="nump">31,000<span></span>
</td>
<td class="nump">76,750<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_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</a></td>
<td class="nump">$ 11.51<span></span>
</td>
<td class="nump">$ 12.54<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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">750<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_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice', window );">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number, Ending Balance</a></td>
<td class="nump">399,300<span></span>
</td>
<td class="nump">340,500<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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price, Ending Balance</a></td>
<td class="nump">$ 22.89<span></span>
</td>
<td class="nump">$ 18.07<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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</a></td>
<td class="nump">$ 6,341,305<span></span>
</td>
<td class="nump">$ 11,185,815<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod">
<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>Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<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>Gross number of share options (or share units) granted during the period.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue">
<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>Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<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>Number of options outstanding, including both vested and non-vested options.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<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>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<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>Weighted average price at which option holders acquired shares when converting their stock options into shares.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</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_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice">
<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>Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</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_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<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>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</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/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</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_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<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>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-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;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>91
<FILENAME>R78.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Details) - $ / shares<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 2024</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N90110001Member', window );">$ 9.01-$10.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">45,000<span></span>
</td>
<td class="nump">55,000<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">5 years 9 months 18 days<span></span>
</td>
<td class="text">7 years<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 9.71<span></span>
</td>
<td class="nump">$ 9.67<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N100111001Member', window );">$10.01-$11.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">15,250<span></span>
</td>
<td class="nump">15,250<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">3 years 8 months 12 days<span></span>
</td>
<td class="text">4 years 8 months 12 days<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 10.21<span></span>
</td>
<td class="nump">$ 10.21<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N110112001Member', window );">$11.01-$12.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">99,000<span></span>
</td>
<td class="nump">106,250<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">5 years 4 months 24 days<span></span>
</td>
<td class="text">6 years 6 months<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 11.72<span></span>
</td>
<td class="nump">$ 11.72<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N120113001Member', window );">$12.01-$13.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">6,000<span></span>
</td>
<td class="nump">19,000<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">1 year 8 months 12 days<span></span>
</td>
<td class="text">1 year 6 months<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 12.41<span></span>
</td>
<td class="nump">$ 12.36<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N130114001Member', window );">$13.01-$14.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">10,000<span></span>
</td>
<td class="nump">10,000<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">1 year 10 months 24 days<span></span>
</td>
<td class="text">2 years 10 months 24 days<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 13.8<span></span>
</td>
<td class="nump">$ 13.8<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N160117001Member', window );">$16.01-$17.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">10,000<span></span>
</td>
<td class="nump">10,000<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">10 months 24 days<span></span>
</td>
<td class="text">1 year 10 months 24 days<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 16.4<span></span>
</td>
<td class="nump">$ 16.4<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N190120001Member', window );">$19.01-$20.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">47,500<span></span>
</td>
<td class="nump">47,500<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">7 years 3 months 18 days<span></span>
</td>
<td class="text">8 years 3 months 18 days<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 19.89<span></span>
</td>
<td class="nump">$ 19.89<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N20012100Member', window );">$20.01-$21.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">33,750<span></span>
</td>
<td class="nump">34,500<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">8 years 4 months 24 days<span></span>
</td>
<td class="text">9 years 4 months 24 days<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 20.78<span></span>
</td>
<td class="nump">$ 20.78<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N30013100Member', window );">$30.01-$31.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">43,000<span></span>
</td>
<td class="text">&#160;<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">9 years 10 months 24 days<span></span>
</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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 30.55<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N43014400Member', window );">$43.01-$44.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">46,800<span></span>
</td>
<td class="text">&#160;<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">9 years 4 months 24 days<span></span>
</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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 43.38<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N46014700Member', window );">$46.01-$47.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">43,000<span></span>
</td>
<td class="nump">43,000<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">8 years 10 months 24 days<span></span>
</td>
<td class="text">9 years 10 months 24 days<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 46.99<span></span>
</td>
<td class="nump">$ 46.99<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N9014700Member', window );">$ 9.01-$47.00</a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Options</a></td>
<td class="nump">399,300<span></span>
</td>
<td class="nump">340,500<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Years of Contractual Life</a></td>
<td class="text">6 years 10 months 24 days<span></span>
</td>
<td class="text">6 years 10 months 24 days<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_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price</a></td>
<td class="nump">$ 22.89<span></span>
</td>
<td class="nump">$ 18.07<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions">
<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 number of shares reserved for issuance pertaining to the outstanding stock options as of the balance sheet date for all option plans in the customized range of exercise prices.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1">
<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 weighted average price as of the balance sheet date at which grantees could acquire the underlying shares with respect to all outstanding stock options which are in the customized range of exercise prices.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2">
<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>Weighted average remaining contractual term of outstanding stock options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (e)(1)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-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;">us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</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_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N90110001Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N90110001Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N100111001Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N100111001Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N110112001Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N110112001Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N120113001Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N120113001Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N130114001Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N130114001Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N160117001Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N160117001Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N190120001Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N190120001Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N20012100Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N20012100Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N30013100Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N30013100Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N43014400Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N43014400Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N46014700Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N46014700Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N9014700Member">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fil_N9014700Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<FILENAME>R79.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>14. Retirement Plan (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_PensionAndOtherPostretirementBenefitExpense', window );">Pension and Other Postretirement Benefits Cost (Reversal of Cost)</a></td>
<td class="nump">$ 462,445<span></span>
</td>
<td class="nump">$ 431,720<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PensionAndOtherPostretirementBenefitExpense">
<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>Amount of cost (reversal of cost) for pension and other postretirement benefits.</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;">us-gaap_PensionAndOtherPostretirementBenefitExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>93
<FILENAME>R80.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2025</div></th>
<th class="th"><div>May 31, 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_us-gaap_TextBlockAbstract', window );"><strong>Details</strong></a></td>
<td class="text">&#160;<span></span>
</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_us-gaap_InterestPaid', window );">Interest paid</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<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_us-gaap_IncomeTaxesPaidNet', window );">Income taxes paid</a></td>
<td class="nump">$ 2,425,000<span></span>
</td>
<td class="nump">$ 2,010,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<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>Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax.</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/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 23<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-23<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-22<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-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;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_InterestPaid">
<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>Amount of cash paid for interest, including, but not limited to, capitalized interest and payment to settle zero-coupon bond attributable to accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount; classified as operating and investing activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-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;">us-gaap_InterestPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<FILENAME>R81.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.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>17. Legal Proceedings (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>May 31, 2025</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_us-gaap_TextBlockAbstract', window );"><strong>Details</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_us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation', window );">Loss Contingency, Parties Jointly and Severally Liable in Litigation</a></td>
<td class="text">The Company has been named as a third-party defendant <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_us-gaap_LossContingencyNameOfPlaintiff', window );">Loss Contingency, Name of Plaintiff</a></td>
<td class="text">Board of Managers of the 432 Park Condominium, et al.<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_us-gaap_LossContingencyLawsuitFilingDate1', window );">Loss Contingency, Lawsuit Filing Date</a></td>
<td class="text">Sep. 23,  2021<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_us-gaap_LossContingencyAllegations', window );">Loss Contingency, Allegations</a></td>
<td class="text">construction and design defects to the residential and commercial units at the Building<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fil_LossContingencyInestimableLoss2', window );">Loss Contingency, Inestimable Loss</a></td>
<td class="text">At present, the Company is unable to determine the likelihood of an unfavorable outcome or to quantify a potential loss<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fil_LossContingencyInestimableLoss2">
<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>Represents the description of Loss Contingency, Inestimable Loss, during the indicated time period.</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;">fil_LossContingencyInestimableLoss2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fil_</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_us-gaap_LossContingencyAllegations">
<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>Presents an assertion of a fact by a plaintiff in a pleading or complaint, which the plaintiff claims it will prove upon presentation of evidence at the proceeding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<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;">us-gaap_LossContingencyAllegations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_LossContingencyLawsuitFilingDate1">
<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>Date complaint was formally filed in court of law, arbitration, or mediation, in YYYY-MM-DD format.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<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;">us-gaap_LossContingencyLawsuitFilingDate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_LossContingencyNameOfPlaintiff">
<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>Identifies the plaintiff in the lawsuit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<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;">us-gaap_LossContingencyNameOfPlaintiff</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation">
<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>Identifies individuals or entities that are co-defendants in a lawsuit, and who may have to pay all or a portion of any damages awarded.</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;">us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_TextBlockAbstract">
<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 );">- References</a><div><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;">us-gaap_TextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>95
<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>96
<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>98
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>107</ContextCount>
  <ElementCount>246</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>35</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>4</UnitCount>
  <MyReports>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000010 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>000020 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>000030 - Statement - Consolidated Balance Sheets - Parenthetical</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>Consolidated Balance Sheets - Parenthetical</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>000040 - Statement - Consolidated Statements of Income</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome</Role>
      <ShortName>Consolidated Statements of Income</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>000050 - Statement - Consolidated Statements of Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>000060 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>000070 - Disclosure - 1. Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>000080 - Disclosure - 2. Accounts and Other Receivables</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivables</Role>
      <ShortName>2. Accounts and Other Receivables</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>000090 - Disclosure - 3. Inventory</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure3Inventory</Role>
      <ShortName>3. Inventory</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>000100 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts</Role>
      <ShortName>4. Costs and Estimated Earnings on Uncompleted Contracts</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>000110 - Disclosure - 5. Maintenance and Other Inventory</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventory</Role>
      <ShortName>5. Maintenance and Other Inventory</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>000120 - Disclosure - 6. Property and Equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipment</Role>
      <ShortName>6. Property and Equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>000130 - Disclosure - 7. Short-Term Borrowings</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowings</Role>
      <ShortName>7. Short-Term Borrowings</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>000140 - Disclosure - 8. Accrued Expenses</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpenses</Role>
      <ShortName>8. Accrued Expenses</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>000150 - Disclosure - 9. Sales</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure9Sales</Role>
      <ShortName>9. Sales</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>000160 - Disclosure - 10. Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxes</Role>
      <ShortName>10. Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>000170 - Disclosure - 11. Earnings Per Common Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShare</Role>
      <ShortName>11. Earnings Per Common Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>000180 - Disclosure - 12. Employee Stock Purchase Plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlan</Role>
      <ShortName>12. Employee Stock Purchase Plan</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>000190 - Disclosure - 13. Stock Option Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlans</Role>
      <ShortName>13. Stock Option Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>000200 - Disclosure - 14. Retirement Plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlan</Role>
      <ShortName>14. Retirement Plan</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>000210 - Disclosure - 15. Fair Value of Financial Instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure15FairValueOfFinancialInstruments</Role>
      <ShortName>15. Fair Value of Financial Instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>000220 - Disclosure - 16. Cash Flows Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformation</Role>
      <ShortName>16. Cash Flows Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>000230 - Disclosure - 17. Legal Proceedings</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedings</Role>
      <ShortName>17. Legal Proceedings</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>000240 - Disclosure - 1. Summary of Significant Accounting Policies: Nature of Operations (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Nature of Operations (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>000250 - Disclosure - 1. Summary of Significant Accounting Policies: Principles of Consolidation (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Principles of Consolidation (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>000260 - Disclosure - 1. Summary of Significant Accounting Policies: Subsequent Events (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Subsequent Events (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>000270 - Disclosure - 1. Summary of Significant Accounting Policies: Use of Estimates (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Use of Estimates (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>000280 - Disclosure - 1. Summary of Significant Accounting Policies: Cash and Cash Equivalents (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Cash and Cash Equivalents (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>000290 - Disclosure - 1. Summary of Significant Accounting Policies: Short-Term Investments (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Short-Term Investments (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>000300 - Disclosure - 1. Summary of Significant Accounting Policies: Accounts and Other Receivables (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Accounts and Other Receivables (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>000310 - Disclosure - 1. Summary of Significant Accounting Policies: Inventory (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Inventory (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>000320 - Disclosure - 1. Summary of Significant Accounting Policies: Property and Equipment (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Property and Equipment (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>000330 - Disclosure - 1. Summary of Significant Accounting Policies: Cash Value of Life Insurance (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Cash Value of Life Insurance (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>000340 - Disclosure - 1. Summary of Significant Accounting Policies: Revenue Recognition (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Revenue Recognition (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>000350 - Disclosure - 1. Summary of Significant Accounting Policies: Shipping and Handling Costs (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Shipping and Handling Costs (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>000360 - Disclosure - 1. Summary of Significant Accounting Policies: Income Taxes (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Income Taxes (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>000370 - Disclosure - 1. Summary of Significant Accounting Policies: Sales Taxes (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Sales Taxes (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>000380 - Disclosure - 1. Summary of Significant Accounting Policies: Stock-Based Compensation (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Stock-Based Compensation (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>000390 - Disclosure - 1. Summary of Significant Accounting Policies: New Accounting Standards (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies</Role>
      <ShortName>1. Summary of Significant Accounting Policies: New Accounting Standards (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>000400 - Disclosure - 2. Accounts and Other Receivables: Accounts and Other Receivables (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables</Role>
      <ShortName>2. Accounts and Other Receivables: Accounts and Other Receivables (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>000410 - Disclosure - 3. Inventory: Schedule of Inventory (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryTables</Role>
      <ShortName>3. Inventory: Schedule of Inventory (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>000420 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables</Role>
      <ShortName>4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>000430 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables</Role>
      <ShortName>4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>000440 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables</Role>
      <ShortName>4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>000450 - Disclosure - 5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables</Role>
      <ShortName>5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>000460 - Disclosure - 6. Property and Equipment: Schedule of Property, Plant and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables</Role>
      <ShortName>6. Property and Equipment: Schedule of Property, Plant and Equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>000470 - Disclosure - 8. Accrued Expenses: Schedule of Accrued Expenses (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables</Role>
      <ShortName>8. Accrued Expenses: Schedule of Accrued Expenses (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>000480 - Disclosure - 9. Sales: Disaggregation of Sales Revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueTables</Role>
      <ShortName>9. Sales: Disaggregation of Sales Revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>000490 - Disclosure - 10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables</Role>
      <ShortName>10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>000500 - Disclosure - 10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables</Role>
      <ShortName>10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>000510 - Disclosure - 10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables</Role>
      <ShortName>10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>000520 - Disclosure - 11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables</Role>
      <ShortName>11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>000530 - Disclosure - 13. Stock Option Plans: Schedule of Fair Value Assumptions (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables</Role>
      <ShortName>13. Stock Option Plans: Schedule of Fair Value Assumptions (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>000540 - Disclosure - 13. Stock Option Plans: Schedule of Stock Options Activity (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables</Role>
      <ShortName>13. Stock Option Plans: Schedule of Stock Options Activity (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>000550 - Disclosure - 13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables</Role>
      <ShortName>13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>000560 - Disclosure - 16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables</Role>
      <ShortName>16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>000570 - Disclosure - 1. Summary of Significant Accounting Policies: Stock-Based Compensation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails</Role>
      <ShortName>1. Summary of Significant Accounting Policies: Stock-Based Compensation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies</ParentRole>
      <Position>57</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>000580 - Disclosure - 2. Accounts and Other Receivables: Accounts and Other Receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails</Role>
      <ShortName>2. Accounts and Other Receivables: Accounts and Other Receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>000590 - Disclosure - 3. Inventory: Schedule of Inventory (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails</Role>
      <ShortName>3. Inventory: Schedule of Inventory (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryTables</ParentRole>
      <Position>59</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>000600 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails</Role>
      <ShortName>4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables</ParentRole>
      <Position>60</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>000610 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails</Role>
      <ShortName>4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables</ParentRole>
      <Position>61</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>000620 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails</Role>
      <ShortName>4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables</ParentRole>
      <Position>62</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>000630 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails</Role>
      <ShortName>4. Costs and Estimated Earnings on Uncompleted Contracts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables</ParentRole>
      <Position>63</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>000640 - Disclosure - 5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails</Role>
      <ShortName>5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables</ParentRole>
      <Position>64</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>000650 - Disclosure - 5. Maintenance and Other Inventory (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryDetails</Role>
      <ShortName>5. Maintenance and Other Inventory (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables</ParentRole>
      <Position>65</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>000660 - Disclosure - 6. Property and Equipment: Schedule of Property, Plant and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails</Role>
      <ShortName>6. Property and Equipment: Schedule of Property, Plant and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables</ParentRole>
      <Position>66</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>000670 - Disclosure - 6. Property and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentDetails</Role>
      <ShortName>6. Property and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables</ParentRole>
      <Position>67</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>000680 - Disclosure - 7. Short-Term Borrowings (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowingsDetails</Role>
      <ShortName>7. Short-Term Borrowings (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowings</ParentRole>
      <Position>68</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>000690 - Disclosure - 8. Accrued Expenses: Schedule of Accrued Expenses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails</Role>
      <ShortName>8. Accrued Expenses: Schedule of Accrued Expenses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables</ParentRole>
      <Position>69</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>000700 - Disclosure - 9. Sales: Disaggregation of Sales Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails</Role>
      <ShortName>9. Sales: Disaggregation of Sales Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueTables</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>000710 - Disclosure - 10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails</Role>
      <ShortName>10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables</ParentRole>
      <Position>71</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>000720 - Disclosure - 10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails</Role>
      <ShortName>10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables</ParentRole>
      <Position>72</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>000730 - Disclosure - 10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails</Role>
      <ShortName>10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables</ParentRole>
      <Position>73</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>000740 - Disclosure - 11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails</Role>
      <ShortName>11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables</ParentRole>
      <Position>74</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>000750 - Disclosure - 12. Employee Stock Purchase Plan (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlanDetails</Role>
      <ShortName>12. Employee Stock Purchase Plan (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlan</ParentRole>
      <Position>75</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>000760 - Disclosure - 13. Stock Option Plans: Schedule of Fair Value Assumptions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails</Role>
      <ShortName>13. Stock Option Plans: Schedule of Fair Value Assumptions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables</ParentRole>
      <Position>76</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>000770 - Disclosure - 13. Stock Option Plans: Schedule of Stock Options Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails</Role>
      <ShortName>13. Stock Option Plans: Schedule of Stock Options Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables</ParentRole>
      <Position>77</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>000780 - Disclosure - 13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails</Role>
      <ShortName>13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables</ParentRole>
      <Position>78</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>000790 - Disclosure - 14. Retirement Plan (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlanDetails</Role>
      <ShortName>14. Retirement Plan (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlan</ParentRole>
      <Position>79</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>000800 - Disclosure - 16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails</Role>
      <ShortName>16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables</ParentRole>
      <Position>80</Position>
    </Report>
    <Report instance="tayd-20250531_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>000810 - Disclosure - 17. Legal Proceedings (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails</Role>
      <ShortName>17. Legal Proceedings (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedings</ParentRole>
      <Position>81</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>tayd-20250531.xsd</File>
    <File doctype="10-K" isDefinitelyFs="true" isUsgaap="true" original="tayd-20250531_10k.htm">tayd-20250531_10k.htm</File>
    <File>tayd-20250531_cal.xml</File>
    <File>tayd-20250531_def.xml</File>
    <File>tayd-20250531_lab.xml</File>
    <File>tayd-20250531_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="427">http://fasb.org/us-gaap/2025</BaseTaxonomy>
    <BaseTaxonomy items="43">http://xbrl.sec.gov/dei/2025</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>101
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "tayd-20250531_10k.htm": {
   "nsprefix": "fil",
   "nsuri": "http://taylordevices.com/20250531",
   "dts": {
    "schema": {
     "local": [
      "tayd-20250531.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/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-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/2024-01-31/types.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-roles-2025.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-types-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-roles-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-types-2025.xsd",
      "https://xbrl.sec.gov/country/2025/country-2025.xsd",
      "https://xbrl.sec.gov/dei/2025/dei-2025.xsd",
      "https://xbrl.sec.gov/stpr/2025/stpr-2025.xsd"
     ]
    },
    "inline": {
     "local": [
      "tayd-20250531_10k.htm"
     ]
    },
    "calculationLink": {
     "local": [
      "tayd-20250531_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "tayd-20250531_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "tayd-20250531_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "tayd-20250531_pre.xml"
     ]
    }
   },
   "keyStandard": 209,
   "keyCustom": 37,
   "axisStandard": 8,
   "axisCustom": 0,
   "memberStandard": 13,
   "memberCustom": 22,
   "hidden": {
    "total": 4,
    "http://xbrl.sec.gov/dei/2025": 4
   },
   "contextCount": 107,
   "entityCount": 1,
   "segmentCount": 35,
   "elementCount": 323,
   "unitCount": 4,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2025": 427,
    "http://xbrl.sec.gov/dei/2025": 43
   },
   "report": {
    "R1": {
     "role": "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation",
     "longName": "000010 - Document - Document and Entity Information",
     "shortName": "Document and Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "dei:CurrentFiscalYearEndDate",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "dei:DocumentPeriodEndDate",
       "p",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "dei:CurrentFiscalYearEndDate",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "dei:DocumentPeriodEndDate",
       "p",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets",
     "longName": "000020 - Statement - Consolidated Balance Sheets",
     "shortName": "Consolidated Balance Sheets",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical",
     "longName": "000030 - Statement - Consolidated Balance Sheets - Parenthetical",
     "shortName": "Consolidated Balance Sheets - Parenthetical",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:CommonStockParOrStatedValuePerShare",
      "unitRef": "UsdPerShare",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:CommonStockParOrStatedValuePerShare",
      "unitRef": "UsdPerShare",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R4": {
     "role": "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome",
     "longName": "000040 - Statement - Consolidated Statements of Income",
     "shortName": "Consolidated Statements of Income",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:Revenues",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity",
     "longName": "000050 - Statement - Consolidated Statements of Stockholders' Equity",
     "shortName": "Consolidated Statements of Stockholders' Equity",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "I230531_StEqComps-CommonStock",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I230531_StEqComps-CommonStock",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R6": {
     "role": "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows",
     "longName": "000060 - Statement - Consolidated Statements of Cash Flows",
     "shortName": "Consolidated Statements of Cash Flows",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:Depreciation",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "unique": true
     }
    },
    "R7": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies",
     "longName": "000070 - Disclosure - 1. Summary of Significant Accounting Policies",
     "shortName": "1. Summary of Significant Accounting Policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "7",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R8": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivables",
     "longName": "000080 - Disclosure - 2. Accounts and Other Receivables",
     "shortName": "2. Accounts and Other Receivables",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "8",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R9": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure3Inventory",
     "longName": "000090 - Disclosure - 3. Inventory",
     "shortName": "3. Inventory",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts",
     "longName": "000100 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts",
     "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventory",
     "longName": "000110 - Disclosure - 5. Maintenance and Other Inventory",
     "shortName": "5. Maintenance and Other Inventory",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipment",
     "longName": "000120 - Disclosure - 6. Property and Equipment",
     "shortName": "6. Property and Equipment",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowings",
     "longName": "000130 - Disclosure - 7. Short-Term Borrowings",
     "shortName": "7. Short-Term Borrowings",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ShortTermDebtTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ShortTermDebtTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpenses",
     "longName": "000140 - Disclosure - 8. Accrued Expenses",
     "shortName": "8. Accrued Expenses",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure9Sales",
     "longName": "000150 - Disclosure - 9. Sales",
     "shortName": "9. Sales",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxes",
     "longName": "000160 - Disclosure - 10. Income Taxes",
     "shortName": "10. Income Taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShare",
     "longName": "000170 - Disclosure - 11. Earnings Per Common Share",
     "shortName": "11. Earnings Per Common Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlan",
     "longName": "000180 - Disclosure - 12. Employee Stock Purchase Plan",
     "shortName": "12. Employee Stock Purchase Plan",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlans",
     "longName": "000190 - Disclosure - 13. Stock Option Plans",
     "shortName": "13. Stock Option Plans",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlan",
     "longName": "000200 - Disclosure - 14. Retirement Plan",
     "shortName": "14. Retirement Plan",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure15FairValueOfFinancialInstruments",
     "longName": "000210 - Disclosure - 15. Fair Value of Financial Instruments",
     "shortName": "15. Fair Value of Financial Instruments",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformation",
     "longName": "000220 - Disclosure - 16. Cash Flows Information",
     "shortName": "16. Cash Flows Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedings",
     "longName": "000230 - Disclosure - 17. Legal Proceedings",
     "shortName": "17. Legal Proceedings",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:LegalMattersAndContingenciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:LegalMattersAndContingenciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies",
     "longName": "000240 - Disclosure - 1. Summary of Significant Accounting Policies: Nature of Operations (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Nature of Operations (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "24",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies",
     "longName": "000250 - Disclosure - 1. Summary of Significant Accounting Policies: Principles of Consolidation (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Principles of Consolidation (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "25",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies",
     "longName": "000260 - Disclosure - 1. Summary of Significant Accounting Policies: Subsequent Events (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Subsequent Events (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "26",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:SubsequentEventsPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:SubsequentEventsPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies",
     "longName": "000270 - Disclosure - 1. Summary of Significant Accounting Policies: Use of Estimates (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Use of Estimates (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "27",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:UseOfEstimates",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:UseOfEstimates",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies",
     "longName": "000280 - Disclosure - 1. Summary of Significant Accounting Policies: Cash and Cash Equivalents (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Cash and Cash Equivalents (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "28",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies",
     "longName": "000290 - Disclosure - 1. Summary of Significant Accounting Policies: Short-Term Investments (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Short-Term Investments (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "29",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CashCashEquivalentsAndShortTermInvestmentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CashCashEquivalentsAndShortTermInvestmentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies",
     "longName": "000300 - Disclosure - 1. Summary of Significant Accounting Policies: Accounts and Other Receivables (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Accounts and Other Receivables (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "30",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:TradeAndOtherAccountsReceivablePolicy",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:TradeAndOtherAccountsReceivablePolicy",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies",
     "longName": "000310 - Disclosure - 1. Summary of Significant Accounting Policies: Inventory (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Inventory (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "31",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:InventoryPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:InventoryPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies",
     "longName": "000320 - Disclosure - 1. Summary of Significant Accounting Policies: Property and Equipment (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Property and Equipment (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "32",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies",
     "longName": "000330 - Disclosure - 1. Summary of Significant Accounting Policies: Cash Value of Life Insurance (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Cash Value of Life Insurance (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "33",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:LifeInsuranceCorporateOrBankOwnedTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:LifeInsuranceCorporateOrBankOwnedTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies",
     "longName": "000340 - Disclosure - 1. Summary of Significant Accounting Policies: Revenue Recognition (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Revenue Recognition (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "34",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:RevenueRecognitionPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:RevenueRecognitionPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies",
     "longName": "000350 - Disclosure - 1. Summary of Significant Accounting Policies: Shipping and Handling Costs (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Shipping and Handling Costs (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "35",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ShippingAndHandlingCostPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ShippingAndHandlingCostPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies",
     "longName": "000360 - Disclosure - 1. Summary of Significant Accounting Policies: Income Taxes (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Income Taxes (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "36",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:IncomeTaxPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:IncomeTaxPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies",
     "longName": "000370 - Disclosure - 1. Summary of Significant Accounting Policies: Sales Taxes (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Sales Taxes (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "37",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:RegulatoryIncomeTaxesPolicy",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:RegulatoryIncomeTaxesPolicy",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies",
     "longName": "000380 - Disclosure - 1. Summary of Significant Accounting Policies: Stock-Based Compensation (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: Stock-Based Compensation (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "38",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies",
     "longName": "000390 - Disclosure - 1. Summary of Significant Accounting Policies: New Accounting Standards (Policies)",
     "shortName": "1. Summary of Significant Accounting Policies: New Accounting Standards (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "39",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables",
     "longName": "000400 - Disclosure - 2. Accounts and Other Receivables: Accounts and Other Receivables (Tables)",
     "shortName": "2. Accounts and Other Receivables: Accounts and Other Receivables (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "40",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryTables",
     "longName": "000410 - Disclosure - 3. Inventory: Schedule of Inventory (Tables)",
     "shortName": "3. Inventory: Schedule of Inventory (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "41",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfUtilityInventoryTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:InventoryDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfUtilityInventoryTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:InventoryDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables",
     "longName": "000420 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Tables)",
     "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "42",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables",
     "longName": "000430 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Tables)",
     "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "43",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables",
     "longName": "000440 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Tables)",
     "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "44",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:SchduleOfStatusOfProjectsInProgressTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:SchduleOfStatusOfProjectsInProgressTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables",
     "longName": "000450 - Disclosure - 5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Tables)",
     "shortName": "5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "45",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:ScheduleOfMaintenanceAndOtherInventoryTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:ScheduleOfMaintenanceAndOtherInventoryTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables",
     "longName": "000460 - Disclosure - 6. Property and Equipment: Schedule of Property, Plant and Equipment (Tables)",
     "shortName": "6. Property and Equipment: Schedule of Property, Plant and Equipment (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "46",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables",
     "longName": "000470 - Disclosure - 8. Accrued Expenses: Schedule of Accrued Expenses (Tables)",
     "shortName": "8. Accrued Expenses: Schedule of Accrued Expenses (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "47",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R48": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueTables",
     "longName": "000480 - Disclosure - 9. Sales: Disaggregation of Sales Revenue (Tables)",
     "shortName": "9. Sales: Disaggregation of Sales Revenue (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "48",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables",
     "longName": "000490 - Disclosure - 10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Tables)",
     "shortName": "10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "49",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables",
     "longName": "000500 - Disclosure - 10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Tables)",
     "shortName": "10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "50",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R51": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables",
     "longName": "000510 - Disclosure - 10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Tables)",
     "shortName": "10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "51",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables",
     "longName": "000520 - Disclosure - 11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Tables)",
     "shortName": "11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "52",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R53": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables",
     "longName": "000530 - Disclosure - 13. Stock Option Plans: Schedule of Fair Value Assumptions (Tables)",
     "shortName": "13. Stock Option Plans: Schedule of Fair Value Assumptions (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "53",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:FairValueOptionTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:FairValueOptionTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R54": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables",
     "longName": "000540 - Disclosure - 13. Stock Option Plans: Schedule of Stock Options Activity (Tables)",
     "shortName": "13. Stock Option Plans: Schedule of Stock Options Activity (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "54",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R55": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables",
     "longName": "000550 - Disclosure - 13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Tables)",
     "shortName": "13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "55",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R56": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables",
     "longName": "000560 - Disclosure - 16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Tables)",
     "shortName": "16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "56",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails",
     "longName": "000570 - Disclosure - 1. Summary of Significant Accounting Policies: Stock-Based Compensation (Details)",
     "shortName": "1. Summary of Significant Accounting Policies: Stock-Based Compensation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:StockOptionPlanExpense",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R58": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails",
     "longName": "000580 - Disclosure - 2. Accounts and Other Receivables: Accounts and Other Receivables (Details)",
     "shortName": "2. Accounts and Other Receivables: Accounts and Other Receivables (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R59": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails",
     "longName": "000590 - Disclosure - 3. Inventory: Schedule of Inventory (Details)",
     "shortName": "3. Inventory: Schedule of Inventory (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:InventoryGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfUtilityInventoryTextBlock",
       "us-gaap:InventoryDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:InventoryGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfUtilityInventoryTextBlock",
       "us-gaap:InventoryDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R60": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails",
     "longName": "000600 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Details)",
     "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs incurred on uncompleted contracts and Estimated earnings (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:CostsIncurredOnUncompletedContracts",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock",
       "us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:CostsIncurredOnUncompletedContracts",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock",
       "us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R61": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails",
     "longName": "000610 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Details)",
     "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Amounts are included in the accompanying balance sheets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "61",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:CostsAndEstimatedEarningsInExcessOfBillings",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "fil:ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock",
       "us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:CostsAndEstimatedEarningsInExcessOfBillings",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "fil:ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock",
       "us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R62": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails",
     "longName": "000620 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Details)",
     "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts: Schdule of Status of Projects in progress (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "I250531",
      "name": "fil:NumberOfProjectsInProgress",
      "unitRef": "Pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531",
      "name": "fil:NumberOfProjectsInProgress",
      "unitRef": "Pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R63": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails",
     "longName": "000630 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts (Details)",
     "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "63",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R64": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails",
     "longName": "000640 - Disclosure - 5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Details)",
     "shortName": "5. Maintenance and Other Inventory: Schedule of Maintenance and Other Inventory (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "I250531",
      "name": "fil:MaintenanceAndOtherInventoryGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "fil:ScheduleOfMaintenanceAndOtherInventoryTextBlock",
       "us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531",
      "name": "fil:MaintenanceAndOtherInventoryGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "fil:ScheduleOfMaintenanceAndOtherInventoryTextBlock",
       "us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R65": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryDetails",
     "longName": "000650 - Disclosure - 5. Maintenance and Other Inventory (Details)",
     "shortName": "5. Maintenance and Other Inventory (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "65",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:InventoryDisposedOf",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:InventoryDisposedOf",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R66": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails",
     "longName": "000660 - Disclosure - 6. Property and Equipment: Schedule of Property, Plant and Equipment (Details)",
     "shortName": "6. Property and Equipment: Schedule of Property, Plant and Equipment (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "66",
     "firstAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R67": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentDetails",
     "longName": "000670 - Disclosure - 6. Property and Equipment (Details)",
     "shortName": "6. Property and Equipment (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "67",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:DepreciationDepletionAndAmortization",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:DepreciationDepletionAndAmortization",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R68": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowingsDetails",
     "longName": "000680 - Disclosure - 7. Short-Term Borrowings (Details)",
     "shortName": "7. Short-Term Borrowings (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:LineOfCredit",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:ShortTermDebtTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:LineOfCredit",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:ShortTermDebtTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R69": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails",
     "longName": "000690 - Disclosure - 8. Accrued Expenses: Schedule of Accrued Expenses (Details)",
     "shortName": "8. Accrued Expenses: Schedule of Accrued Expenses (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "69",
     "firstAnchor": {
      "contextRef": "I250531",
      "name": "us-gaap:AccruedLiabilitiesCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531_FvByLiabClass-CustomerDeposits",
      "name": "us-gaap:AccruedLiabilitiesCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "unique": true
     }
    },
    "R70": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails",
     "longName": "000700 - Disclosure - 9. Sales: Disaggregation of Sales Revenue (Details)",
     "shortName": "9. Sales: Disaggregation of Sales Revenue (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "70",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:Revenues",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531_StBusnSeg-Structural",
      "name": "us-gaap:Revenues",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "unique": true
     }
    },
    "R71": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails",
     "longName": "000710 - Disclosure - 10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Details)",
     "shortName": "10. Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "71",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R72": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails",
     "longName": "000720 - Disclosure - 10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Details)",
     "shortName": "10. Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "72",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R73": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails",
     "longName": "000730 - Disclosure - 10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Details)",
     "shortName": "10. Income Taxes: Schedule of Deferred Tax Assets and Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "73",
     "firstAnchor": {
      "contextRef": "I250531",
      "name": "fil:AllowanceForDoubtfulReceivables",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531",
      "name": "fil:AllowanceForDoubtfulReceivables",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "kbd",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R74": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails",
     "longName": "000740 - Disclosure - 11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Details)",
     "shortName": "11. Earnings Per Common Share: Schedule of Earnings Per Common Share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "74",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:AverageCommonSharesOutstanding",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:AverageCommonSharesOutstanding",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R75": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlanDetails",
     "longName": "000750 - Disclosure - 12. Employee Stock Purchase Plan (Details)",
     "shortName": "12. Employee Stock Purchase Plan (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "75",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:CommonSharesIssuedToEmployees",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "fil:CommonSharesIssuedToEmployees",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R76": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails",
     "longName": "000760 - Disclosure - 13. Stock Option Plans: Schedule of Fair Value Assumptions (Details)",
     "shortName": "13. Stock Option Plans: Schedule of Fair Value Assumptions (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "76",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "unitRef": "Pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueOptionTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "unitRef": "Pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueOptionTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R77": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails",
     "longName": "000770 - Disclosure - 13. Stock Option Plans: Schedule of Stock Options Activity (Details)",
     "shortName": "13. Stock Option Plans: Schedule of Stock Options Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "77",
     "firstAnchor": {
      "contextRef": "I240531",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "I230531",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "unique": true
     }
    },
    "R78": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails",
     "longName": "000780 - Disclosure - 13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Details)",
     "shortName": "13. Stock Option Plans: Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "78",
     "firstAnchor": {
      "contextRef": "I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001",
      "name": "us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001",
      "name": "us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R79": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlanDetails",
     "longName": "000790 - Disclosure - 14. Retirement Plan (Details)",
     "shortName": "14. Retirement Plan (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "79",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitExpense",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitExpense",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R80": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails",
     "longName": "000800 - Disclosure - 16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Details)",
     "shortName": "16. Cash Flows Information: Schedule of Cash Flow, Supplemental Disclosures (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "80",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:InterestPaid",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:InterestPaid",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R81": {
     "role": "http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails",
     "longName": "000810 - Disclosure - 17. Legal Proceedings (Details)",
     "shortName": "17. Legal Proceedings (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "81",
     "firstAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:LossContingencyPartiesJointlyAndSeverallyLiableInLitigation",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "us-gaap:LegalMattersAndContingenciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "D240601_250531",
      "name": "us-gaap:LossContingencyPartiesJointlyAndSeverallyLiableInLitigation",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "us-gaap:LegalMattersAndContingenciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tayd-20250531_10k.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountsAndOtherReceivablesNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsAndOtherReceivablesNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      },
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts and other receivables, net (Note 2)",
        "totalLabel": "Accounts and other receivables, net (Note 2)",
        "documentation": "Amount, after allowance, receivable from customers, clients, or other third-parties, and receivables classified as other due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpenses"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "8. Accrued Expenses:",
        "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r24",
      "r26",
      "r622"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts payable",
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r540"
     ]
    },
    "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts and Other Receivables",
        "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r607"
     ]
    },
    "us-gaap_AccountsReceivableGrossCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableGrossCurrent",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails": {
       "parentTag": "us-gaap_AccountsAndOtherReceivablesNetCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, before Allowance for Credit Loss, Current",
        "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r200",
      "r506"
     ]
    },
    "us-gaap_AccruedIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccruedIncomeTaxes",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued income taxes",
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due. This amount is the total of current and noncurrent accrued income taxes."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r26",
      "r62",
      "r402"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued expenses (Note 8)",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "fil_AccruedVacation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "AccruedVacation",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued vacation",
        "documentation": "Represents the monetary amount of Accrued vacation, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Less accumulated depreciation",
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r103",
      "r407"
     ]
    },
    "us-gaap_AcquisitionCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AcquisitionCosts",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization {1}",
        "terseLabel": "Amortization",
        "documentation": "Amount of capitalized acquisition cost incurred during period and excluded from amortization for oil- and gas-producing activities accounted for under full cost method. Excludes exploration and development costs and capitalized interest."
       }
      }
     },
     "auth_ref": [
      "r637",
      "r638"
     ]
    },
    "us-gaap_AdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdditionalPaidInCapital",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Paid-in capital",
        "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r540",
      "r671"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional Paid-in Capital",
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders."
       }
      }
     },
     "auth_ref": [
      "r439",
      "r589",
      "r590",
      "r591",
      "r592",
      "r631",
      "r673"
     ]
    },
    "us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to reconcile net income to net cash flows from operating activities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock options issued for services",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r616",
      "r619"
     ]
    },
    "fil_AerospaceDefenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "AerospaceDefenseMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aerospace / Defense",
        "documentation": "Represents the Aerospace / Defense, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_AggregateAmountRemaining": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "AggregateAmountRemaining",
     "crdr": "debit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate amount remaining",
        "documentation": "Represents the monetary amount of Aggregate amount remaining, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "fil_AggregatePercentComplete": {
     "xbrltype": "percentItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "AggregatePercentComplete",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate percent complete",
        "documentation": "Represents the percentage value of Aggregate percent complete, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails": {
       "parentTag": "us-gaap_AccountsAndOtherReceivablesNetCurrent",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Less allowance for estimated credit losses",
        "documentation": "The valuation allowance as of the balance sheet date to reduce the gross amount of receivables to estimated net realizable value, which would be presented in parentheses on the face of the balance sheet."
       }
      }
     },
     "auth_ref": [
      "r603"
     ]
    },
    "fil_AllowanceForDoubtfulReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "AllowanceForDoubtfulReceivables",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for doubtful receivables",
        "documentation": "Represents the monetary amount of Allowance for doubtful receivables, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "fil_AllowanceForObsoleteInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "AllowanceForObsoleteInventory",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for obsolete inventory",
        "documentation": "Represents the monetary amount of Allowance for obsolete inventory, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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": []
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets",
        "totalLabel": "Assets",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r61",
      "r79",
      "r105",
      "r130",
      "r131",
      "r132",
      "r163",
      "r173",
      "r190",
      "r193",
      "r201",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r339",
      "r341",
      "r377",
      "r396",
      "r397",
      "r401",
      "r470",
      "r523",
      "r524",
      "r526",
      "r540",
      "r544",
      "r545",
      "r556",
      "r613",
      "r614",
      "r634"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets {1}",
        "terseLabel": "Assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total current assets",
        "totalLabel": "Total current assets",
        "documentation": "Amount of asset recognized for present right to economic benefit, classified as current."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r114",
      "r130",
      "r131",
      "r132",
      "r201",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r339",
      "r341",
      "r377",
      "r540",
      "r613",
      "r614",
      "r634"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current assets"
       }
      }
     },
     "auth_ref": []
    },
    "dei_AuditorFirmId": {
     "xbrltype": "nonemptySequenceNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "AuditorFirmId",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Firm ID",
        "documentation": "PCAOB issued Audit Firm Identifier"
       }
      }
     },
     "auth_ref": [
      "r560",
      "r561",
      "r562"
     ]
    },
    "dei_AuditorLocation": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "AuditorLocation",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Location"
       }
      }
     },
     "auth_ref": [
      "r560",
      "r561",
      "r562"
     ]
    },
    "dei_AuditorName": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "AuditorName",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Name"
       }
      }
     },
     "auth_ref": [
      "r560",
      "r561",
      "r562"
     ]
    },
    "fil_AverageCommonSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "AverageCommonSharesOutstanding",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails": {
       "parentTag": "fil_AverageCommonSharesOutstandingAssumingDilution",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Average common shares outstanding",
        "documentation": "Represents the Average common shares outstanding (number of shares), during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_AverageCommonSharesOutstandingAssumingDilution": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "AverageCommonSharesOutstandingAssumingDilution",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Average common shares outstanding assuming dilution",
        "totalLabel": "Average common shares outstanding assuming dilution",
        "documentation": "Represents the Average common shares outstanding assuming dilution (number of shares), during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BillingsInExcessOfCostCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BillingsInExcessOfCostCurrent",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Billings in excess of costs and estimated earnings (Note 4)",
        "documentation": "Liability attributable to (i) billings in excess of costs under the percentage of completion contract accounting method representing the difference between contractually invoiced amounts (billings) and revenue recognized based, for example, on costs incurred to estimated total costs at period end or (ii) contractually invoiced amounts (billings) in excess of costs incurred and accumulated under the completed contract accounting method that are expected to be realized within one year or one operating cycle, whichever is longer, from the reporting date."
       }
      }
     },
     "auth_ref": []
    },
    "fil_BillingsInExcessOfCostsAndEstimatedEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "BillingsInExcessOfCostsAndEstimatedEarnings",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails": {
       "parentTag": "fil_CostsIncurredOnUncompletedContractsNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Billings in excess of costs and estimated earnings {1}",
        "negatedLabel": "Billings in excess of costs and estimated earnings",
        "documentation": "Represents the monetary amount of Billings in excess of costs and estimated earnings, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BuildingImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BuildingImprovementsMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Building Improvements",
        "documentation": "Addition, improvement, or renovation to a facility held for productive use including, but not limited to, office, production, storage and distribution facilities."
       }
      }
     },
     "auth_ref": [
      "r54"
     ]
    },
    "us-gaap_BusinessAndContractualArrangementsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAndContractualArrangementsDisclosureTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContracts"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "4. Costs and Estimated Earnings on Uncompleted Contracts:",
        "documentation": "The entire disclosure for prepaid health care service provider's significant business and contractual arrangements with hospitals, physicians, or other associated entities."
       }
      }
     },
     "auth_ref": [
      "r69"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and cash equivalents",
        "documentation": "Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r101",
      "r504"
     ]
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and Cash Equivalents:",
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_CashCashEquivalentsAndShortTermInvestmentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsAndShortTermInvestmentsTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShortTermInvestmentsPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Short-Term Investments:",
        "documentation": "The entire disclosure of cash, cash equivalent, and short-term investment."
       }
      }
     },
     "auth_ref": [
      "r605"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and cash equivalents - beginning",
        "periodStartLabel": "Cash and cash equivalents - beginning",
        "periodEndLabel": "Cash and cash equivalents - ending",
        "documentation": "Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r48",
      "r127"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net change in cash and cash equivalents",
        "totalLabel": "Net change in cash and cash equivalents",
        "documentation": "Amount, excluding effect from change in exchange rate, of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r48"
     ]
    },
    "us-gaap_CashFlowSupplementalDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashFlowSupplementalDisclosuresTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "16. Cash Flows Information:",
        "documentation": "The entire disclosure for supplemental cash flow activities, including cash, noncash, and part noncash transactions, for the period. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period."
       }
      }
     },
     "auth_ref": [
      "r44"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CityAreaCode",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfStockDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ClassOfStockDomain",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Class of Stock",
        "documentation": "Share of stock differentiated by the voting rights the holder receives. Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock."
       }
      }
     },
     "auth_ref": [
      "r92",
      "r106",
      "r107",
      "r108",
      "r130",
      "r132",
      "r153",
      "r154",
      "r156",
      "r158",
      "r165",
      "r166",
      "r201",
      "r226",
      "r228",
      "r229",
      "r230",
      "r233",
      "r234",
      "r237",
      "r238",
      "r240",
      "r241",
      "r243",
      "r245",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r377",
      "r433",
      "r434",
      "r435",
      "r436",
      "r439",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r458",
      "r478",
      "r495",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r567",
      "r584",
      "r585",
      "r593"
     ]
    },
    "us-gaap_CommonClassAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonClassAMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Class A",
        "documentation": "Classification of common stock representing ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r673"
     ]
    },
    "fil_CommonSharesIssuableUnderStockOptionPlans": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CommonSharesIssuableUnderStockOptionPlans",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails": {
       "parentTag": "fil_AverageCommonSharesOutstandingAssumingDilution",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common shares issuable under stock option plans",
        "documentation": "Represents the Common shares issuable under stock option plans (number of shares), during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_CommonSharesIssuedToEmployees": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CommonSharesIssuedToEmployees",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlanDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common shares issued to employees",
        "documentation": "Represents the Common shares issued to employees (number of shares), during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r546",
      "r547",
      "r548",
      "r550",
      "r551",
      "r552",
      "r553",
      "r589",
      "r590",
      "r592",
      "r631",
      "r670",
      "r673"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r28"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r28",
      "r458"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares, Issued",
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury."
       }
      }
     },
     "auth_ref": [
      "r28"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares, Outstanding",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r28",
      "r458",
      "r476",
      "r673",
      "r674"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Value",
        "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity."
       }
      }
     },
     "auth_ref": [
      "r28",
      "r238",
      "r244",
      "r403",
      "r540"
     ]
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPrinciplesOfConsolidationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Principles of Consolidation:",
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary."
       }
      }
     },
     "auth_ref": [
      "r22",
      "r515"
     ]
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cost of goods sold",
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r38",
      "r393",
      "r509",
      "r514",
      "r532",
      "r577"
     ]
    },
    "fil_CostsAndEstimatedEarningsInExcessOfBillings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CostsAndEstimatedEarningsInExcessOfBillings",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails": {
       "parentTag": "fil_CostsIncurredOnUncompletedContractsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs and estimated earnings in excess of billings {1}",
        "terseLabel": "Costs and estimated earnings in excess of billings",
        "documentation": "Represents the monetary amount of Costs and estimated earnings in excess of billings, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Costs incurred on uncompleted contracts and Estimated earnings",
        "documentation": "Tabular disclosure of long-term contract or program."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostsInExcessOfBillingsOnUncompletedContractsOrPrograms",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs and estimated earnings in excess of billings (Note 4)",
        "documentation": "Amount of receivable reflecting the cost incurred on uncompleted contracts in excess of related billings."
       }
      }
     },
     "auth_ref": [
      "r73",
      "r74",
      "r75",
      "r80"
     ]
    },
    "fil_CostsIncurredOnUncompletedContracts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CostsIncurredOnUncompletedContracts",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails": {
       "parentTag": "fil_CostsIncurredOnUncompletedContractsGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs incurred on uncompleted contracts",
        "documentation": "Represents the monetary amount of Costs incurred on uncompleted contracts, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_CostsIncurredOnUncompletedContractsBillingsToDate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CostsIncurredOnUncompletedContractsBillingsToDate",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails": {
       "parentTag": "fil_CostsIncurredOnUncompletedContractsNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs incurred on uncompleted contracts, Billings to date",
        "documentation": "Represents the monetary amount of Costs incurred on uncompleted contracts, Billings to date, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_CostsIncurredOnUncompletedContractsEstimatedEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CostsIncurredOnUncompletedContractsEstimatedEarnings",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails": {
       "parentTag": "fil_CostsIncurredOnUncompletedContractsGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs incurred on uncompleted contracts, Estimated earnings",
        "documentation": "Represents the monetary amount of Costs incurred on uncompleted contracts, Estimated earnings, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_CostsIncurredOnUncompletedContractsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CostsIncurredOnUncompletedContractsGross",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails": {
       "parentTag": "fil_CostsIncurredOnUncompletedContractsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs incurred on uncompleted contracts, Gross",
        "totalLabel": "Costs incurred on uncompleted contracts, Gross",
        "documentation": "Represents the monetary amount of Costs incurred on uncompleted contracts, Gross, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_CostsIncurredOnUncompletedContractsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CostsIncurredOnUncompletedContractsNet",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsIncurredOnUncompletedContractsAndEstimatedEarningsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs incurred on uncompleted contracts, Net",
        "totalLabel": "Costs incurred on uncompleted contracts, Net",
        "documentation": "Represents the monetary amount of Costs incurred on uncompleted contracts, Net, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CurrentFederalStateAndLocalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Federal, State and Local, Tax Expense (Benefit)",
        "totalLabel": "Current Federal, State and Local, Tax Expense (Benefit)",
        "documentation": "Amount of current federal, state, and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national, regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r569"
     ]
    },
    "us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CurrentFederalStateAndLocalTaxExpenseBenefitAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current tax provision"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CurrentFederalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails": {
       "parentTag": "us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Federal",
        "documentation": "Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r569",
      "r582",
      "r587",
      "r630"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fiscal Year End",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails": {
       "parentTag": "us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "State",
        "documentation": "Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r569",
      "r582",
      "r587",
      "r630"
     ]
    },
    "fil_CustomerDepositsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CustomerDepositsMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer deposits",
        "documentation": "Represents the Customer deposits, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_CustomersMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CustomersMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customers",
        "documentation": "Represents the Customers, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_CustomersRetentionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "CustomersRetentionMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customers - retention",
        "documentation": "Represents the Customers - retention, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails": {
       "parentTag": "us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Federal {1}",
        "terseLabel": "Federal",
        "documentation": "Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r582",
      "r587",
      "r629",
      "r630"
     ]
    },
    "us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredFederalStateAndLocalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Federal, State and Local, Tax Expense (Benefit)",
        "totalLabel": "Deferred Federal, State and Local, Tax Expense (Benefit)",
        "documentation": "Amount of deferred federal, state, and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national, regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r623"
     ]
    },
    "us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredFederalStateAndLocalTaxExpenseBenefitAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred tax provision (benefit)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredIncomeTaxAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred income taxes (Note 10)",
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r307",
      "r308"
     ]
    },
    "us-gaap_DeferredIncomeTaxesAndTaxCredits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredIncomeTaxesAndTaxCredits",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred income taxes",
        "documentation": "Amount of deferred income tax expense (benefit) and income tax credits."
       }
      }
     },
     "auth_ref": [
      "r50"
     ]
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails": {
       "parentTag": "us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "State {1}",
        "terseLabel": "State",
        "documentation": "Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r582",
      "r587",
      "r629",
      "r630"
     ]
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredTaxAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Assets, Gross",
        "totalLabel": "Deferred Tax Assets, Gross",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards."
       }
      }
     },
     "auth_ref": [
      "r317"
     ]
    },
    "us-gaap_DeferredTaxAssetsGrossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredTaxAssetsGrossAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred tax assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredTaxAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net deferred tax assets",
        "totalLabel": "Net deferred tax assets",
        "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards."
       }
      }
     },
     "auth_ref": [
      "r627"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredTaxLiabilitiesAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred tax liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Depreciation",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation",
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r13",
      "r123",
      "r508",
      "r509",
      "r511",
      "r513"
     ]
    },
    "us-gaap_DepreciationDepletionAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DepreciationDepletionAndAmortization",
     "crdr": "debit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation, Depletion and Amortization",
        "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r124",
      "r163",
      "r178",
      "r193",
      "r508",
      "r523",
      "r524"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregation of Sales Revenue",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r617"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlans"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "13. Stock Option Plans:",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r276",
      "r277",
      "r291",
      "r292",
      "r293",
      "r530"
     ]
    },
    "us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlan"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "12. Employee Stock Purchase Plan:",
        "documentation": "Tabular disclosure of share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r620"
     ]
    },
    "us-gaap_DisclosureTextBlockAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisclosureTextBlockAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Notes"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentAnnualReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentAnnualReport",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Annual Report",
        "documentation": "Boolean flag that is true only for a form used as an annual report."
       }
      }
     },
     "auth_ref": [
      "r560",
      "r561",
      "r562"
     ]
    },
    "dei_DocumentFinStmtErrorCorrectionFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentFinStmtErrorCorrectionFlag",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Financial Statement Error Correction",
        "documentation": "Indicates whether any of the financial statement period in the filing include a restatement due to error correction."
       }
      }
     },
     "auth_ref": [
      "r560",
      "r561",
      "r562",
      "r564"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r563"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentType",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basic earnings per common share (Note 11)",
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r95",
      "r122",
      "r140",
      "r141",
      "r142",
      "r143",
      "r144",
      "r145",
      "r146",
      "r147",
      "r152",
      "r153",
      "r156",
      "r157",
      "r158",
      "r162",
      "r236",
      "r294",
      "r333",
      "r338",
      "r354",
      "r355",
      "r395",
      "r412",
      "r517"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Diluted earnings per common share (Note 11)",
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r95",
      "r122",
      "r140",
      "r141",
      "r142",
      "r143",
      "r144",
      "r145",
      "r146",
      "r147",
      "r153",
      "r156",
      "r157",
      "r158",
      "r162",
      "r236",
      "r294",
      "r333",
      "r338",
      "r354",
      "r355",
      "r395",
      "r412",
      "r517"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "11. Earnings Per Common Share:",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r151",
      "r159",
      "r160",
      "r161"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective income tax rate",
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r310",
      "r531"
     ]
    },
    "dei_EntityAddressAddressDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressAddressDescription",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Address Description",
        "documentation": "Description of the kind of address for the entity, if needed to distinguish more finely among mailing, principal, legal, accounting, contact or other addresses."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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/2025",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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/2025",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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/2025",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Registrant CIK",
        "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": [
      "r558"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Common Stock, Shares Outstanding",
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Current Reporting Status",
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r558"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Filer Category",
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": [
      "r558"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Interactive Data Current",
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)."
       }
      }
     },
     "auth_ref": [
      "r565"
     ]
    },
    "dei_EntityPublicFloat": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityPublicFloat",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Public Float",
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r558"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r558"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r558"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r558"
     ]
    },
    "dei_EntityVoluntaryFilers": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityVoluntaryFilers",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Voluntary Filers",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityWellKnownSeasonedIssuer",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Well-known Seasoned Issuer",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A."
       }
      }
     },
     "auth_ref": [
      "r566"
     ]
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Component",
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r93",
      "r94",
      "r95",
      "r118",
      "r119",
      "r120",
      "r135",
      "r136",
      "r137",
      "r139",
      "r146",
      "r148",
      "r150",
      "r164",
      "r204",
      "r205",
      "r222",
      "r235",
      "r252",
      "r294",
      "r323",
      "r324",
      "r330",
      "r331",
      "r332",
      "r334",
      "r337",
      "r338",
      "r343",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r388",
      "r389",
      "r391",
      "r411",
      "r425",
      "r426",
      "r427",
      "r439",
      "r495"
     ]
    },
    "fil_ExcessTaxDepreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "ExcessTaxDepreciation",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Excess tax depreciation",
        "negatedLabel": "Excess tax depreciation",
        "documentation": "Represents the monetary amount of Excess tax depreciation, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueByLiabilityClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueByLiabilityClassAxis",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liability Class [Axis]",
        "documentation": "Information by class of liability."
       }
      }
     },
     "auth_ref": [
      "r357",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r366"
     ]
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueDisclosuresTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure15FairValueOfFinancialInstruments"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "15. Fair Value of Financial Instruments:",
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information."
       }
      }
     },
     "auth_ref": [
      "r356",
      "r361",
      "r363",
      "r364",
      "r365",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r394",
      "r533",
      "r534"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value by Liability Class",
        "documentation": "Represents classes of liabilities measured and disclosed at fair value."
       }
      }
     },
     "auth_ref": [
      "r357",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r366"
     ]
    },
    "us-gaap_FairValueOptionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueOptionTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Fair Value Assumptions",
        "documentation": "The entire disclosure for a company's election to apply the fair value option for measurement and reporting of eligible financial assets and liabilities (as defined), as well as certain other eligible items (as defined) included in the statement of financial position, whether such option is elected for a single eligible item or a group of similar eligible items and is in addition to other disclosures concerning fair value which the company may be required to provide. Such disclosure might be expected to include: (1) for items included in the statement of financial position: (a) the reasons for electing a fair value option for each eligible item or group of similar eligible items; (b) if the fair value option is elected for some but not all eligible items within a group of similar eligible items: (i) a description of those similar items and the reasons for partial election and (ii) information of how the group of similar items relates to individual balance sheet line items; (c) for each line item in the statement of financial position that includes an item or items for which the fair value option has been elected: (i) information of how each line item in the statement of financial position relates to major categories of assets and liabilities presented in accordance with other fair value disclosures and (ii) the aggregate carrying amount of ineligible items included in each line item in the balance sheet, if any; (d) the difference between the aggregate fair value and the aggregate unpaid principal balance (assuming contractual principal amounts and fair value option elected) of: (i) loans and long-term receivables (other than securities otherwise reported at fair value) and (ii) long-term debt instruments; (e) for loans held as assets for which the fair value option has been elected: (i) the aggregate fair value of loans that are 90 days or more past due, (ii) if the policy is to recognize interest income separately from other changes in fair value, the aggregate fair value of loans in nonaccrual status, and (iii) the difference between the aggregate fair value and the aggregate unpaid principal balance for loans that are 90 days or more past due, in nonaccrual status, or both; (f) for investments that would have been accounted for under the equity method if the entity had not chosen to apply the fair value option, the information required for such investments, if material either individually or in the aggregate; (2) for items included in the income statement: (a) the amounts of gains and losses from fair value changes included in earnings and in which line in the income statement those gains and losses are reported whether or not combined with gains and losses from items required to be accounted for at fair value; (b) a description of how interest and dividends are measured and where they are reported in the income statement; (c) for loans and other receivables held as assets: (i) the estimated amount of gains or losses included in earnings attributable to changes in instrument-specific credit risk and (ii) how the gains or losses attributable to changes in instrument-specific credit risk were determined; (d) for liabilities with fair values that have been significantly affected during the reporting period by changes in the instrument-specific credit risk: (i) the estimated amount of gains and losses from fair value changes included in earnings that are attributable to changes in the instrument-specific credit risk, (ii) qualitative information about the reasons for those changes, and (iii) how the gains and losses attributable to changes in instrument-specific credit risk were determined; and (3) certain other disclosures as required or determined to be provided."
       }
      }
     },
     "auth_ref": [
      "r87",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r378",
      "r379",
      "r380",
      "r535",
      "r536",
      "r537",
      "r538",
      "r539",
      "r632"
     ]
    },
    "fil_FinishedGoodsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "FinishedGoodsMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finished goods",
        "documentation": "Represents the Finished goods, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FurnitureAndFixturesMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Furniture and Fixtures",
        "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GainLossOnCondemnation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GainLossOnCondemnation",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Provision for inventory obsolescence",
        "negatedLabel": "Provision for inventory obsolescence",
        "documentation": "The gain (loss) is the pre-tax difference between the net condemnation award and the entity's adjusted basis of the condemned property."
       }
      }
     },
     "auth_ref": [
      "r580"
     ]
    },
    "us-gaap_GainsLossesOnExtinguishmentOfDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GainsLossesOnExtinguishmentOfDebt",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit loss expense",
        "negatedLabel": "Credit loss expense",
        "documentation": "Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r15",
      "r16"
     ]
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gross profit",
        "totalLabel": "Gross profit",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r39",
      "r78",
      "r130",
      "r131",
      "r132",
      "r201",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r377",
      "r521",
      "r523",
      "r595",
      "r596",
      "r597",
      "r598",
      "r599",
      "r613"
     ]
    },
    "dei_IcfrAuditorAttestationFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "IcfrAuditorAttestationFlag",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "auth_ref": [
      "r560",
      "r561",
      "r562"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income before provision for income taxes",
        "totalLabel": "Income before provision for income taxes",
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r67",
      "r78",
      "r396",
      "r398",
      "r409",
      "r510",
      "r512",
      "r514",
      "r521",
      "r523",
      "r595",
      "r596",
      "r597",
      "r598",
      "r599"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Details {2}",
        "terseLabel": "Details"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "10. Income Taxes:",
        "documentation": "The entire disclosure for income tax."
       }
      }
     },
     "auth_ref": [
      "r130",
      "r133",
      "r304",
      "r310",
      "r312",
      "r313",
      "r314",
      "r315",
      "r319",
      "r325",
      "r327",
      "r328",
      "r329",
      "r400",
      "r430",
      "r438",
      "r531"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      },
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Provision for income taxes (Note 10)",
        "totalLabel": "Provision for income taxes (Note 10)",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r81",
      "r90",
      "r130",
      "r149",
      "r150",
      "r163",
      "r181",
      "r193",
      "r309",
      "r310",
      "r326",
      "r413",
      "r510",
      "r512",
      "r514",
      "r531"
     ]
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesIncomeTaxesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Taxes:",
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements."
       }
      }
     },
     "auth_ref": [
      "r117",
      "r305",
      "r306",
      "r315",
      "r316",
      "r318",
      "r322",
      "r432"
     ]
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Computed tax provision at the expected statutory rate",
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r310",
      "r531"
     ]
    },
    "us-gaap_IncomeTaxReconciliationOtherReconcilingItems": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxReconciliationOtherReconcilingItems",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other permanent differences",
        "documentation": "Amount of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying statutory federal (national) tax rate to pretax income (loss) from continuing operation attributable to other reconciling item. Excludes state and local income tax expense (benefit), federal tax expense (benefit), statutory income tax expense (benefit) outside of country of domicile, tax credit, nondeductible expense, deduction, income tax settlement, income tax contingency, and cross-border tax law."
       }
      }
     },
     "auth_ref": [
      "r624",
      "r625"
     ]
    },
    "us-gaap_IncomeTaxReconciliationTaxCreditsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxReconciliationTaxCreditsAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tax effect of permanent differences"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxReconciliationTaxCreditsForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxReconciliationTaxCreditsForeign",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Foreign-derived intangible income deduction",
        "negatedLabel": "Foreign-derived intangible income deduction",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign tax credit."
       }
      }
     },
     "auth_ref": [
      "r624",
      "r626"
     ]
    },
    "us-gaap_IncomeTaxReconciliationTaxCreditsResearch": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxReconciliationTaxCreditsResearch",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Research tax credits",
        "negatedLabel": "Research tax credits",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit."
       }
      }
     },
     "auth_ref": [
      "r531",
      "r624",
      "r626"
     ]
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income taxes paid",
        "documentation": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r126",
      "r320",
      "r321"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayableTrade": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccountsPayableTrade",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts payable {1}",
        "terseLabel": "Accounts payable",
        "documentation": "Change in recurring obligations of a business that arise from the acquisition of merchandise, materials, supplies and services used in the production and sale of goods and services."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts and other receivables",
        "negatedLabel": "Accounts and other receivables",
        "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccruedIncomeTaxesPayable",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued income taxes {1}",
        "terseLabel": "Accrued income taxes",
        "documentation": "The increase (decrease) during the period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued expenses",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInBillingInExcessOfCostOfEarnings",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Billings in excess of costs and estimated earnings",
        "documentation": "The increase (decrease) during the reporting period in the liability reflecting cash payments received before the related costs have been incurred."
       }
      }
     },
     "auth_ref": [
      "r72"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory",
        "negatedLabel": "Inventory",
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changes in other assets and liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOtherCurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOtherCurrentAssets",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid income taxes {1}",
        "negatedLabel": "Prepaid income taxes",
        "documentation": "Amount of increase (decrease) in current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r579"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOtherOperatingAssets",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other assets {1}",
        "negatedLabel": "Other assets",
        "documentation": "Amount of increase (decrease) in operating assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOtherOperatingLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs and estimated earnings in excess of billings",
        "documentation": "Amount of increase (decrease) in operating liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_IncreaseDecreaseInPrepaidExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInPrepaidExpense",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid expenses {1}",
        "negatedLabel": "Prepaid expenses",
        "documentation": "The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "fil_IndustrialMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "IndustrialMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Industrial",
        "documentation": "Represents the Industrial, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Patents, net",
        "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges."
       }
      }
     },
     "auth_ref": [
      "r220",
      "r608",
      "r609"
     ]
    },
    "us-gaap_InterestPaid": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestPaid",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest paid",
        "documentation": "Amount of cash paid for interest, including, but not limited to, capitalized interest and payment to settle zero-coupon bond attributable to accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount; classified as operating and investing activities."
       }
      }
     },
     "auth_ref": [
      "r581"
     ]
    },
    "us-gaap_InventoryAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryAdjustments",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Less allowance for obsolescence",
        "documentation": "Amount of inventory reserves for last-in first-out (LIFO) and other inventory valuation methods."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r574"
     ]
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryDisclosureTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure3Inventory"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "3. Inventory:",
        "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory."
       }
      }
     },
     "auth_ref": [
      "r206"
     ]
    },
    "fil_InventoryDisposedOf": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "InventoryDisposedOf",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory disposed of",
        "documentation": "Represents the monetary amount of Inventory disposed of, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryGross",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory, Gross",
        "documentation": "Gross amount, as of the balance sheet date, of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process."
       }
      }
     },
     "auth_ref": [
      "r574"
     ]
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory, Net",
        "totalLabel": "Inventory, Net",
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r111",
      "r505",
      "r540"
     ]
    },
    "us-gaap_InventoryPartsAndComponentsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryPartsAndComponentsNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory (Note 3)",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date for elements of machinery or equipment held for the purpose of replacing similar parts in the course of repair or maintenance."
       }
      }
     },
     "auth_ref": [
      "r52",
      "r573"
     ]
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesInventoryPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory:",
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost."
       }
      }
     },
     "auth_ref": [
      "r82",
      "r100",
      "r110",
      "r206",
      "r207",
      "r208",
      "r392",
      "r516"
     ]
    },
    "us-gaap_InvestmentIncomeInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InvestmentIncomeInterest",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest, net",
        "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities."
       }
      }
     },
     "auth_ref": [
      "r163",
      "r176",
      "r193",
      "r523",
      "r576"
     ]
    },
    "us-gaap_LandImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LandImprovementsMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Land Improvements {1}",
        "terseLabel": "Land Improvements",
        "documentation": "Additions or improvements to real estate held."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LandMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LandMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Land {1}",
        "terseLabel": "Land",
        "documentation": "Part of earth's surface not covered by water."
       }
      }
     },
     "auth_ref": [
      "r617",
      "r618"
     ]
    },
    "us-gaap_LegalMattersAndContingenciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LegalMattersAndContingenciesTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedings"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "17. Legal Proceedings:",
        "documentation": "The entire disclosure for legal proceedings, legal contingencies, litigation, regulatory and environmental matters and other contingencies."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity",
        "totalLabel": "Liabilities and Equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r33",
      "r64",
      "r405",
      "r540",
      "r544",
      "r545",
      "r582",
      "r586",
      "r606",
      "r633"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Stockholders' Equity"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total current liabilities",
        "totalLabel": "Total current liabilities",
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r99",
      "r130",
      "r131",
      "r132",
      "r201",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r340",
      "r341",
      "r342",
      "r377",
      "r540",
      "r613",
      "r634",
      "r635"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LifeInsuranceCorporateOrBankOwnedTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesCashValueOfLifeInsurancePolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Value of Life Insurance:",
        "documentation": "The entire disclosure for corporate (COLI) or bank (BOLI) owned life insurance including the amount of cash surrender value that could be received as of the date of the statement of financial position, any restrictions on the company's ability to obtain the value of the life insurance policy on surrender, or any other additional information desired to be disclosed."
       }
      }
     },
     "auth_ref": [
      "r202",
      "r203"
     ]
    },
    "us-gaap_LineOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCredit",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Line of Credit",
        "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r63",
      "r640"
     ]
    },
    "us-gaap_LineOfCreditFacilityAverageOutstandingAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityAverageOutstandingAmount",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit Facility, Average Outstanding Amount",
        "documentation": "Average amount borrowed under the credit facility during the period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "2. Accounts and Other Receivables:",
        "documentation": "The entire disclosure for claims held for amounts due to entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r387",
      "r600"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossContingencyAllegations": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LossContingencyAllegations",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency, Allegations",
        "documentation": "Presents an assertion of a fact by a plaintiff in a pleading or complaint, which the plaintiff claims it will prove upon presentation of evidence at the proceeding."
       }
      }
     },
     "auth_ref": [
      "r610",
      "r611",
      "r612"
     ]
    },
    "fil_LossContingencyInestimableLoss2": {
     "xbrltype": "stringItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "LossContingencyInestimableLoss2",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency, Inestimable Loss",
        "documentation": "Represents the description of Loss Contingency, Inestimable Loss, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossContingencyLawsuitFilingDate1": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LossContingencyLawsuitFilingDate1",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency, Lawsuit Filing Date",
        "documentation": "Date complaint was formally filed in court of law, arbitration, or mediation, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r610",
      "r611",
      "r612"
     ]
    },
    "us-gaap_LossContingencyNameOfPlaintiff": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LossContingencyNameOfPlaintiff",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency, Name of Plaintiff",
        "documentation": "Identifies the plaintiff in the lawsuit."
       }
      }
     },
     "auth_ref": [
      "r610",
      "r611",
      "r612"
     ]
    },
    "us-gaap_LossContingencyPartiesJointlyAndSeverallyLiableInLitigation": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LossContingencyPartiesJointlyAndSeverallyLiableInLitigation",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure17LegalProceedingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency, Parties Jointly and Severally Liable in Litigation",
        "documentation": "Identifies individuals or entities that are co-defendants in a lawsuit, and who may have to pay all or a portion of any damages awarded."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MachineryAndEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "MachineryAndEquipmentMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Machinery and Equipment",
        "documentation": "Tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment."
       }
      }
     },
     "auth_ref": []
    },
    "fil_MaintenanceAndOtherInventoryAllowanceForObsolescence": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "MaintenanceAndOtherInventoryAllowanceForObsolescence",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails": {
       "parentTag": "fil_MaintenanceAndOtherInventoryNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maintenance and other inventory, allowance for obsolescence",
        "documentation": "Represents the monetary amount of Maintenance and other inventory, allowance for obsolescence, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "fil_MaintenanceAndOtherInventoryGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "MaintenanceAndOtherInventoryGross",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails": {
       "parentTag": "fil_MaintenanceAndOtherInventoryNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maintenance and other inventory, Gross",
        "documentation": "Represents the monetary amount of Maintenance and other inventory, Gross, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "fil_MaintenanceAndOtherInventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "MaintenanceAndOtherInventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maintenance and other inventory, Net",
        "totalLabel": "Maintenance and other inventory, Net",
        "documentation": "Represents the monetary amount of Maintenance and other inventory, Net, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Axis]"
       }
      }
     },
     "auth_ref": [
      "r198",
      "r527",
      "r528",
      "r541",
      "r543",
      "r641",
      "r642",
      "r643",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r661",
      "r662",
      "r663",
      "r664",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669"
     ]
    },
    "fil_N100111001Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N100111001Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$10.01-$11.00",
        "documentation": "Represents the $10.01-$11.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N110112001Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N110112001Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$11.01-$12.00",
        "documentation": "Represents the $11.01-$12.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N120113001Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N120113001Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$12.01-$13.00",
        "documentation": "Represents the $12.01-$13.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N130114001Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N130114001Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$13.01-$14.00",
        "documentation": "Represents the $13.01-$14.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N160117001Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N160117001Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$16.01-$17.00",
        "documentation": "Represents the $16.01-$17.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N190120001Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N190120001Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$19.01-$20.00",
        "documentation": "Represents the $19.01-$20.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N20012100Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N20012100Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$20.01-$21.00",
        "documentation": "Represents the $20.01-$21.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N30013100Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N30013100Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$30.01-$31.00",
        "documentation": "Represents the $30.01-$31.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N43014400Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N43014400Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$43.01-$44.00",
        "documentation": "Represents the $43.01-$44.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N46014700Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N46014700Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$46.01-$47.00",
        "documentation": "Represents the $46.01-$47.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N90110001Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N90110001Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 9.01-$10.00",
        "documentation": "Represents the $ 9.01-$10.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_N9014700Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "N9014700Member",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 9.01-$47.00",
        "documentation": "Represents the $ 9.01-$47.00, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer"
       }
      }
     },
     "auth_ref": [
      "r198",
      "r527",
      "r528",
      "r541",
      "r543",
      "r641",
      "r642",
      "r643",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r661",
      "r662",
      "r663",
      "r664",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669"
     ]
    },
    "us-gaap_NatureOfOperations": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NatureOfOperations",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNatureOfOperationsPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Nature of Operations:",
        "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward."
       }
      }
     },
     "auth_ref": [
      "r83",
      "r168",
      "r518",
      "r519"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net financing activities",
        "totalLabel": "Net financing activities",
        "documentation": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r125"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing activities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net investing activities",
        "totalLabel": "Net investing activities",
        "documentation": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r125"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Investing activities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net operating activities",
        "totalLabel": "Net operating activities",
        "documentation": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r49",
      "r50"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating activities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 1.0
      },
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net income",
        "totalLabel": "Net income",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r50",
      "r68",
      "r95",
      "r97",
      "r115",
      "r116",
      "r120",
      "r130",
      "r131",
      "r132",
      "r134",
      "r138",
      "r142",
      "r143",
      "r144",
      "r145",
      "r146",
      "r149",
      "r150",
      "r155",
      "r201",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r236",
      "r239",
      "r242",
      "r246",
      "r294",
      "r333",
      "r338",
      "r355",
      "r377",
      "r410",
      "r477",
      "r493",
      "r494",
      "r510",
      "r512",
      "r514",
      "r554",
      "r613"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesNewAccountingStandardsPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "New Accounting Standards:",
        "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total other income, net",
        "totalLabel": "Total other income, net",
        "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business)."
       }
      }
     },
     "auth_ref": [
      "r42"
     ]
    },
    "us-gaap_NonoperatingIncomeExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NonoperatingIncomeExpenseAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other income"
       }
      }
     },
     "auth_ref": []
    },
    "fil_NumberOfProjectsInProgress": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "NumberOfProjectsInProgress",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of Projects in progress",
        "documentation": "Represents the Number of Projects in progress, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating income",
        "totalLabel": "Operating income",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r78",
      "r510",
      "r514",
      "r521",
      "r595",
      "r596",
      "r597",
      "r598",
      "r599"
     ]
    },
    "fil_OtherAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "OtherAdjustments",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Adjustments",
        "documentation": "Represents the monetary amount of Other Adjustments, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid income taxes",
        "documentation": "Amount of current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r113",
      "r540"
     ]
    },
    "us-gaap_OtherAssetsMiscellaneousNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsMiscellaneousNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash value of life insurance, net",
        "documentation": "Amount of other miscellaneous assets expected to be realized or consumed after one year or normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other assets",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r104"
     ]
    },
    "us-gaap_OtherCommitment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherCommitment",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments to make capital expenditures",
        "documentation": "Minimum amount of other commitment not otherwise specified in the taxonomy. Excludes commitments explicitly modeled in the taxonomy, including but not limited to, long-term and short-term purchase commitments, recorded and unrecorded purchase obligations, supply commitments, registration payment arrangements, leases, debt, product warranties, guarantees, environmental remediation obligations, and pensions."
       }
      }
     },
     "auth_ref": [
      "r583",
      "r588",
      "r639"
     ]
    },
    "us-gaap_OtherInventoryNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherInventoryNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maintenance and other inventory, net (Note 5)",
        "documentation": "Carrying amount as of the balance sheet date of inventories not expected to be converted to cash, sold or exchanged within the normal operating cycle (such as inventory related to long-term contracts or program rights)."
       }
      }
     },
     "auth_ref": [
      "r570"
     ]
    },
    "fil_OtherMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "OtherMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other",
        "documentation": "Represents the Other, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Miscellaneous",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r43",
      "r532"
     ]
    },
    "fil_OutstandingChecks": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "OutstandingChecks",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding checks",
        "documentation": "Represents the monetary amount of Outstanding checks, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsForProceedsFromOtherInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsForProceedsFromOtherInvestingActivities",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase in cash value of life insurance",
        "negatedLabel": "Increase in cash value of life insurance",
        "documentation": "Amount of cash (inflow) outflow from investing activity, classified as other."
       }
      }
     },
     "auth_ref": [
      "r568",
      "r578"
     ]
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Acquisition of treasury stock",
        "negatedLabel": "Acquisition of treasury stock",
        "documentation": "The cash outflow to reacquire common stock during the period."
       }
      }
     },
     "auth_ref": [
      "r47"
     ]
    },
    "us-gaap_PaymentsToAcquireIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquireIntangibleAssets",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Patent expenditures",
        "negatedLabel": "Patent expenditures",
        "documentation": "The cash outflow to acquire asset without physical form usually arising from contractual or other legal rights, excluding goodwill."
       }
      }
     },
     "auth_ref": [
      "r46"
     ]
    },
    "us-gaap_PaymentsToAcquireOtherInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquireOtherInvestments",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase in short-term investments",
        "negatedLabel": "Increase in short-term investments",
        "documentation": "Amount of cash outflow to acquire investments classified as other."
       }
      }
     },
     "auth_ref": [
      "r45"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Acquisition of property and equipment",
        "negatedLabel": "Acquisition of property and equipment",
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets."
       }
      }
     },
     "auth_ref": [
      "r46"
     ]
    },
    "us-gaap_PensionAndOtherPostretirementBenefitExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PensionAndOtherPostretirementBenefitExpense",
     "crdr": "debit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlanDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension and Other Postretirement Benefits Cost (Reversal of Cost)",
        "documentation": "Amount of cost (reversal of cost) for pension and other postretirement benefits."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure14RetirementPlan"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "14. Retirement Plan:",
        "documentation": "The entire disclosure for retirement benefits."
       }
      }
     },
     "auth_ref": [
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r274",
      "r275",
      "r529"
     ]
    },
    "fil_PercentageOfTotalValueInvoicedToCustomer": {
     "xbrltype": "percentItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "PercentageOfTotalValueInvoicedToCustomer",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Percentage of total value invoiced to customer",
        "documentation": "Represents the percentage value of Percentage of total value invoiced to customer, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "fil_PersonnelCostsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "PersonnelCostsMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Personnel costs",
        "documentation": "Represents the Personnel costs, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "dei_PhoneFaxNumberDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "PhoneFaxNumberDescription",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Phone Fax Number Description",
        "documentation": "Description of Phone or Fax Number"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PolicyTextBlockAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PolicyTextBlockAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Policies"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PrepaidExpenseCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PrepaidExpenseCurrent",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid expenses",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r112",
      "r209",
      "r210",
      "r507"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from issuance of common stock",
        "documentation": "The cash inflow from the additional capital contribution to the entity."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Tangible Asset [Axis]",
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r390"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipment"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "6. Property and Equipment:",
        "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r86",
      "r88",
      "r89"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment, Gross",
        "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r54",
      "r102",
      "r408"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      },
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and equipment, net (Note 6)",
        "totalLabel": "Property and equipment, net (Note 6)",
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r390",
      "r399",
      "r408",
      "r540"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventory"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "5. Maintenance and Other Inventory:",
        "documentation": "Disclosure of accounting policy for planned major maintenance activities."
       }
      }
     },
     "auth_ref": [
      "r0"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesPropertyAndEquipmentPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and Equipment:",
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r86",
      "r88",
      "r406"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Property, Plant and Equipment",
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Tangible Asset",
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software."
       }
      }
     },
     "auth_ref": [
      "r54",
      "r390"
     ]
    },
    "fil_ProvisionForPotentialInventoryObsolescence": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "ProvisionForPotentialInventoryObsolescence",
     "crdr": "debit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Provision for potential inventory obsolescence",
        "documentation": "Represents the monetary amount of Provision for potential inventory obsolescence, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PublicUtilitiesInventoryAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PublicUtilitiesInventoryAxis",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory [Axis]",
        "documentation": "Information by type of inventory held."
       }
      }
     },
     "auth_ref": [
      "r573"
     ]
    },
    "us-gaap_PublicUtilitiesInventoryRawMaterialsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PublicUtilitiesInventoryRawMaterialsMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Raw Materials",
        "documentation": "Basic goods that are to be consumed directly or indirectly in the production of finished goods or services."
       }
      }
     },
     "auth_ref": [
      "r34"
     ]
    },
    "us-gaap_PublicUtilitiesInventoryTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PublicUtilitiesInventoryTypeDomain",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory {1}",
        "terseLabel": "Inventory",
        "documentation": "Tangible personal property that is held for sale in the ordinary course of business, in process of production for such sale or is to be currently consumed in the production of goods or services to be available for sale."
       }
      }
     },
     "auth_ref": [
      "r573"
     ]
    },
    "fil_RDCapitalization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "RDCapitalization",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "R&amp;D capitalization",
        "documentation": "Represents the monetary amount of R&amp;D capitalization, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RegulatoryIncomeTaxesPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RegulatoryIncomeTaxesPolicy",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSalesTaxesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Sales Taxes:",
        "documentation": "Disclosure of accounting policy for income taxes, including investment tax credits, and the related regulatory treatment (for example, whether deferred income tax accounting - normalization - is allowed in rate making)."
       }
      }
     },
     "auth_ref": [
      "r70",
      "r71"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Research and development costs",
        "documentation": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity."
       }
      }
     },
     "auth_ref": [
      "r303",
      "r503",
      "r510",
      "r511",
      "r523",
      "r636"
     ]
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained earnings",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r57",
      "r404",
      "r428",
      "r429",
      "r437",
      "r459",
      "r540"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r93",
      "r94",
      "r95",
      "r135",
      "r136",
      "r137",
      "r139",
      "r146",
      "r148",
      "r150",
      "r204",
      "r205",
      "r222",
      "r235",
      "r294",
      "r323",
      "r324",
      "r330",
      "r331",
      "r332",
      "r334",
      "r337",
      "r338",
      "r343",
      "r345",
      "r346",
      "r348",
      "r353",
      "r388",
      "r389",
      "r425",
      "r427",
      "r439",
      "r673"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure9Sales"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "9. Sales:",
        "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts."
       }
      }
     },
     "auth_ref": [
      "r91",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262"
     ]
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRecognitionPolicyTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesRevenueRecognitionPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue Recognition:",
        "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources."
       }
      }
     },
     "auth_ref": [
      "r479"
     ]
    },
    "us-gaap_Revenues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Revenues",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Sales, net (Note 9)",
        "documentation": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss)."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r77",
      "r121",
      "r130",
      "r131",
      "r132",
      "r163",
      "r174",
      "r175",
      "r188",
      "r193",
      "r196",
      "r197",
      "r198",
      "r201",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r377",
      "r396",
      "r398",
      "r523",
      "r532",
      "r544",
      "r545",
      "r613"
     ]
    },
    "fil_RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenues Recognized For amounts included in billings in excess of costs and estimated earnings",
        "documentation": "Represents the monetary amount of Revenues Recognized For amounts included in billings in excess of costs and estimated earnings, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "fil_SchduleOfStatusOfProjectsInProgressTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "SchduleOfStatusOfProjectsInProgressTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsSchduleOfStatusOfProjectsInProgressTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schdule of Status of Projects in progress",
        "documentation": "Represents the textual narrative disclosure of Schdule of Status of Projects in progress, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Accrued Expenses",
        "documentation": "Tabular disclosure of the components of accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "fil_ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure4CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Amounts are included in the accompanying balance sheets",
        "documentation": "Represents the textual narrative disclosure of Schedule of Amounts are included in the accompanying balance sheets, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure16CashFlowsInformationScheduleOfCashFlowSupplementalDisclosuresTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Cash Flow, Supplemental Disclosures",
        "documentation": "Tabular disclosure of supplemental cash flow information for the periods presented."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Components of Income Tax Expense (Benefit)",
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years."
       }
      }
     },
     "auth_ref": [
      "r628"
     ]
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Deferred Tax Assets and Liabilities",
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r627"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure11EarningsPerCommonShareScheduleOfEarningsPerCommonShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Earnings Per Common Share",
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r594"
     ]
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Effective Income Tax Rate Reconciliation",
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r311",
      "r531",
      "r624"
     ]
    },
    "fil_ScheduleOfMaintenanceAndOtherInventoryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "ScheduleOfMaintenanceAndOtherInventoryTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure5MaintenanceAndOtherInventoryScheduleOfMaintenanceAndOtherInventoryTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Maintenance and Other Inventory",
        "documentation": "Represents the textual narrative disclosure of Schedule of Maintenance and Other Inventory, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfStockOptionsRollForwardTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Stock Options Activity",
        "documentation": "Tabular disclosure of the change in stock options."
       }
      }
     },
     "auth_ref": [
      "r621"
     ]
    },
    "us-gaap_ScheduleOfUtilityInventoryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfUtilityInventoryTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Inventory",
        "documentation": "Tabular disclosure of all information related to inventories for utilities."
       }
      }
     },
     "auth_ref": []
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "Security12bTitle",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r557"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r559"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentDomain",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segments",
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r77",
      "r78",
      "r79",
      "r163",
      "r172",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r178",
      "r179",
      "r180",
      "r181",
      "r182",
      "r183",
      "r184",
      "r185",
      "r186",
      "r187",
      "r188",
      "r189",
      "r190",
      "r191",
      "r192",
      "r193",
      "r194",
      "r195",
      "r198",
      "r211",
      "r212",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r221",
      "r224",
      "r225",
      "r335",
      "r336",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r522",
      "r523",
      "r524",
      "r525",
      "r542",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r661",
      "r662",
      "r663",
      "r664",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669"
     ]
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SellingGeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Selling, general and administrative expenses",
        "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r509",
      "r510",
      "r511",
      "r514",
      "r577"
     ]
    },
    "us-gaap_SeriesAPreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SeriesAPreferredStockMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Series A Preferred Stock",
        "documentation": "Series A preferred stock."
       }
      }
     },
     "auth_ref": [
      "r571",
      "r572",
      "r615",
      "r616"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Expected dividend yield",
        "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term."
       }
      }
     },
     "auth_ref": [
      "r288"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Expected volatility",
        "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period."
       }
      }
     },
     "auth_ref": [
      "r287"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Risk-free interest rate",
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares."
       }
      }
     },
     "auth_ref": [
      "r289"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period",
        "documentation": "Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements."
       }
      }
     },
     "auth_ref": [
      "r283"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross",
        "documentation": "Gross number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r281"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "periodStartLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "periodEndLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding."
       }
      }
     },
     "auth_ref": [
      "r19"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number, Beginning Balance",
        "periodStartLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number, Beginning Balance",
        "periodEndLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number, Ending Balance",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r279",
      "r280"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price, Beginning Balance",
        "periodStartLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price, Beginning Balance",
        "periodEndLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price, Ending Balance",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r279",
      "r280"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable",
        "documentation": "Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding and exercisable options that are fully vested and expected to vest. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r7"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r282"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired."
       }
      }
     },
     "auth_ref": [
      "r283"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r281"
     ]
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock-Based Compensation:",
        "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost."
       }
      }
     },
     "auth_ref": [
      "r276",
      "r278",
      "r284",
      "r285",
      "r286",
      "r287",
      "r290",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercise Price Range [Axis]",
        "documentation": "Information by range of option prices pertaining to options granted."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercise Price Range",
        "documentation": "Supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of Options",
        "documentation": "The number of shares reserved for issuance pertaining to the outstanding stock options as of the balance sheet date for all option plans in the customized range of exercise prices."
       }
      }
     },
     "auth_ref": [
      "r58",
      "r59"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfFairValueAssumptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Expected life in years",
        "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r286"
     ]
    },
    "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Exercise Price",
        "documentation": "The weighted average price as of the balance sheet date at which grantees could acquire the underlying shares with respect to all outstanding stock options which are in the customized range of exercise prices."
       }
      }
     },
     "auth_ref": [
      "r58",
      "r59"
     ]
    },
    "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Remaining Years of Contractual Life",
        "documentation": "Weighted average remaining contractual term of outstanding stock options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r60"
     ]
    },
    "fil_SharesReservedForFurtherIssue": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "SharesReservedForFurtherIssue",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure12EmployeeStockPurchasePlanDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares reserved for further issue",
        "documentation": "Represents the Shares reserved for further issue (number of shares), as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShippingAndHandlingCostPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShippingAndHandlingCostPolicyTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesShippingAndHandlingCostsPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shipping and Handling Costs:",
        "documentation": "Disclosure of accounting policy for the classification of shipping and handling costs, including whether the costs are included in cost of sales or included in other income statement accounts. If shipping and handling fees are significant and are not included in cost of sales, disclosure includes both the amounts of such costs and the line item on the income statement which includes such costs."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShortTermDebtTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShortTermDebtTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure7ShortTermBorrowings"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "7. Short-Term Borrowings:",
        "documentation": "The entire disclosure for short-term debt."
       }
      }
     },
     "auth_ref": [
      "r56"
     ]
    },
    "us-gaap_ShortTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShortTermInvestments",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Short-term investments",
        "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current."
       }
      }
     },
     "auth_ref": [
      "r65",
      "r66",
      "r575"
     ]
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "1. Summary of Significant Accounting Policies:",
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r128",
      "r129"
     ]
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segments [Axis]",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r77",
      "r78",
      "r79",
      "r96",
      "r163",
      "r172",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r178",
      "r179",
      "r180",
      "r181",
      "r182",
      "r183",
      "r184",
      "r185",
      "r186",
      "r187",
      "r188",
      "r189",
      "r190",
      "r191",
      "r192",
      "r193",
      "r194",
      "r195",
      "r198",
      "r211",
      "r212",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r221",
      "r223",
      "r224",
      "r225",
      "r335",
      "r336",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r522",
      "r523",
      "r524",
      "r525",
      "r542",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r661",
      "r662",
      "r663",
      "r664",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669"
     ]
    },
    "us-gaap_StatementClassOfStockAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementClassOfStockAxis",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Class of Stock [Axis]",
        "documentation": "Information by the different classes of stock of the entity."
       }
      }
     },
     "auth_ref": [
      "r92",
      "r106",
      "r107",
      "r108",
      "r130",
      "r132",
      "r153",
      "r154",
      "r156",
      "r158",
      "r165",
      "r166",
      "r201",
      "r226",
      "r228",
      "r229",
      "r230",
      "r233",
      "r234",
      "r237",
      "r238",
      "r240",
      "r241",
      "r243",
      "r245",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r377",
      "r433",
      "r434",
      "r435",
      "r436",
      "r439",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r458",
      "r478",
      "r495",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r567",
      "r584",
      "r585",
      "r593"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r28",
      "r31",
      "r32",
      "r93",
      "r94",
      "r95",
      "r118",
      "r119",
      "r120",
      "r135",
      "r136",
      "r137",
      "r139",
      "r146",
      "r148",
      "r150",
      "r164",
      "r204",
      "r205",
      "r222",
      "r235",
      "r252",
      "r294",
      "r323",
      "r324",
      "r330",
      "r331",
      "r332",
      "r334",
      "r337",
      "r338",
      "r343",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r388",
      "r389",
      "r391",
      "r411",
      "r425",
      "r426",
      "r427",
      "r439",
      "r495"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementLineItems",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails",
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r135",
      "r136",
      "r137",
      "r164",
      "r237",
      "r238",
      "r240",
      "r243",
      "r389",
      "r393",
      "r431",
      "r440",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r495",
      "r512",
      "r514",
      "r549",
      "r672"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Details {4}",
        "terseLabel": "Details"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Details {1}",
        "terseLabel": "Details",
        "verboseLabel": "Consolidated Balance Sheets - Parenthetical"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Details {3}",
        "terseLabel": "Details"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementTable",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure2AccountsAndOtherReceivablesAccountsAndOtherReceivablesDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure8AccruedExpensesScheduleOfAccruedExpensesDetails",
      "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails",
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement",
        "documentation": "Presentation of information about comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r135",
      "r136",
      "r137",
      "r164",
      "r199",
      "r237",
      "r238",
      "r240",
      "r243",
      "r389",
      "r393",
      "r431",
      "r440",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r495",
      "r512",
      "r514",
      "r549",
      "r672"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure13StockOptionPlansScheduleOfStockOptionsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r27",
      "r28",
      "r57",
      "r282"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodValueEmployeeBenefitPlan",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuance of shares for employee stock option plan",
        "documentation": "Value of shares issued during the period to an employee benefit plan, such as a defined contribution or defined benefit plan."
       }
      }
     },
     "auth_ref": [
      "r616"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan",
     "crdr": "credit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuance of shares for employee stock purchase plan",
        "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r27",
      "r28",
      "r57"
     ]
    },
    "fil_StockOptionCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "StockOptionCosts",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock option costs",
        "documentation": "Represents the monetary amount of Stock option costs, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockOptionPlanExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockOptionPlanExpense",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesStockBasedCompensationDetails",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock options issued for services {1}",
        "terseLabel": "Stock options issued for services",
        "documentation": "Amount of noncash expense for option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "fil_StockOptionsIssuedForServices": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "StockOptionsIssuedForServices",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock options issued for services {2}",
        "terseLabel": "Stock options issued for services",
        "documentation": "Represents the monetary amount of Stock options issued for services, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockRepurchasedDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Repurchase of shares",
        "documentation": "Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r27",
      "r28",
      "r57",
      "r439",
      "r495",
      "r501",
      "r555"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets",
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total stockholders' equity",
        "totalLabel": "Total stockholders' equity",
        "periodStartLabel": "Equity, Attributable to Parent, Beginning Balance",
        "periodEndLabel": "Equity, Attributable to Parent, Ending Balance",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r28",
      "r31",
      "r32",
      "r51",
      "r460",
      "r476",
      "r496",
      "r497",
      "r540",
      "r556",
      "r582",
      "r585",
      "r586",
      "r606",
      "r633",
      "r673"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders' Equity"
       }
      }
     },
     "auth_ref": []
    },
    "fil_StructuralMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "StructuralMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure9SalesDisaggregationOfSalesRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Structural",
        "documentation": "Represents the Structural, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventsPolicyPolicyTextBlock",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesSubsequentEventsPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Events:",
        "documentation": "Disclosure of accounting policy for reporting subsequent events."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TableTextBlockSupplementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TableTextBlockSupplementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Tables/Schedules"
       }
      }
     },
     "auth_ref": []
    },
    "fil_TaxInventoryAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "TaxInventoryAdjustment",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tax inventory adjustment",
        "documentation": "Represents the monetary amount of Tax inventory adjustment, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TextBlockAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TextBlockAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Details"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TradeAndOtherAccountsReceivablePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TradeAndOtherAccountsReceivablePolicy",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesAccountsAndOtherReceivablesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts and Other Receivables:",
        "documentation": "Disclosure of accounting policy for accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r601",
      "r602",
      "r604"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "TradingSymbol",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TreasuryStockCommonMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TreasuryStockCommonMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock, Common",
        "documentation": "Previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r17"
     ]
    },
    "us-gaap_TreasuryStockCommonShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TreasuryStockCommonShares",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock, Common, Shares",
        "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r17"
     ]
    },
    "us-gaap_TreasuryStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TreasuryStockValue",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury stock - 1,051,688 and 1,046,742 shares at cost",
        "negatedLabel": "Treasury stock - 1,051,688 and 1,046,742 shares at cost",
        "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r18",
      "r28",
      "r31"
     ]
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure1SummaryOfSignificantAccountingPoliciesUseOfEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Use of Estimates:",
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles."
       }
      }
     },
     "auth_ref": [
      "r84",
      "r85",
      "r167",
      "r169",
      "r170",
      "r171",
      "r396",
      "r398",
      "r520"
     ]
    },
    "us-gaap_VehiclesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "VehiclesMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure6PropertyAndEquipmentScheduleOfPropertyPlantAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vehicles",
        "documentation": "Equipment used primarily for road transportation."
       }
      }
     },
     "auth_ref": []
    },
    "fil_WarrantyReserve": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "WarrantyReserve",
     "crdr": "debit",
     "calculation": {
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure10IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Warranty reserve",
        "documentation": "Represents the monetary amount of Warranty reserve, as of the indicated date."
       }
      }
     },
     "auth_ref": []
    },
    "fil_WorkInProcessMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://taylordevices.com/20250531",
     "localname": "WorkInProcessMember",
     "presentation": [
      "http://taylordevices.com/20250531/role/idr_Disclosure3InventoryScheduleOfInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Work-in-process",
        "documentation": "Represents the Work-in-process, during the indicated time period."
       }
      }
     },
     "auth_ref": []
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "5",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482251/360-10-25-5"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "SubTopic": "230",
   "Topic": "830",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r5": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "505",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-1"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "330",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-1"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "470",
   "SubTopic": "50",
   "Section": "40",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481303/470-50-40-2"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "470",
   "SubTopic": "50",
   "Section": "40",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481303/470-50-40-4"
  },
  "r17": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481549/505-30-45-1"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1"
  },
  "r23": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(31))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(32))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/230/tableOfContent"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r48": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24"
  },
  "r49": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 4.E)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480418/310-10-S99-2"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480581/330-10-S99-2"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/360/tableOfContent"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/450/tableOfContent"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/470/tableOfContent"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r60": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r61": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(15)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r67": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "954",
   "SubTopic": "405",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/954-405/tableOfContent"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "980",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479068/980-740-25-1"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "980",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479068/980-740-25-2"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(c)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(c)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r77": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r78": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "912",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478345/912-310-45-2"
  },
  "r81": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "SubTopic": "20",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482659/740-20-45-2"
  },
  "r82": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "270",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482989/270-10-45-6"
  },
  "r83": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r84": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r85": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r86": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-1"
  },
  "r87": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-32"
  },
  "r88": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-6"
  },
  "r89": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-7"
  },
  "r90": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h))",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r91": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/606/tableOfContent"
  },
  "r92": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r93": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6"
  },
  "r94": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r95": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r96": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-1"
  },
  "r97": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-7"
  },
  "r98": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r99": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-5"
  },
  "r100": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r101": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r102": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r103": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r104": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r105": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r106": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r107": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r108": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r109": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r110": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r111": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r112": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r113": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r114": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r115": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r116": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B"
  },
  "r117": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-1"
  },
  "r118": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4"
  },
  "r119": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5"
  },
  "r120": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6"
  },
  "r121": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r122": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r123": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r124": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r125": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24"
  },
  "r126": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2A"
  },
  "r127": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8"
  },
  "r128": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/235/tableOfContent"
  },
  "r129": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-1"
  },
  "r130": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1"
  },
  "r131": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r132": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r133": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r134": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(k)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r135": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23"
  },
  "r136": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24"
  },
  "r137": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5"
  },
  "r138": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r139": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r140": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r141": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r142": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11"
  },
  "r143": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11"
  },
  "r144": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3"
  },
  "r145": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4"
  },
  "r146": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r147": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7"
  },
  "r148": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7"
  },
  "r149": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8"
  },
  "r150": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9"
  },
  "r151": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/260/tableOfContent"
  },
  "r152": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10"
  },
  "r153": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-2"
  },
  "r154": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-3"
  },
  "r155": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r156": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r157": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-7"
  },
  "r158": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r159": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r160": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2"
  },
  "r161": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-3"
  },
  "r162": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-15"
  },
  "r163": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r164": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-1"
  },
  "r165": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482987/272-10-50-1"
  },
  "r166": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482987/272-10-50-3"
  },
  "r167": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-12"
  },
  "r168": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-2"
  },
  "r169": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-4"
  },
  "r170": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-6"
  },
  "r171": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9"
  },
  "r172": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15"
  },
  "r173": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r174": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r175": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r176": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r177": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r178": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r179": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r180": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r181": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r182": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r183": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r184": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r185": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26A"
  },
  "r186": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B"
  },
  "r187": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C"
  },
  "r188": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r190": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r191": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r192": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r193": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r194": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r195": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "34",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34"
  },
  "r196": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-40"
  },
  "r197": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-42"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13"
  },
  "r200": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "325",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/325-30/tableOfContent"
  },
  "r203": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "325",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481463/325-30-50-1"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4"
  },
  "r205": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5"
  },
  "r206": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/330/tableOfContent"
  },
  "r207": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-1"
  },
  "r208": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-4"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482955/340-10-05-5"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483032/340-10-45-1"
  },
  "r211": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r212": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r214": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r215": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r216": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r217": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r218": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r219": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r220": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r228": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r229": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-1"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-2"
  },
  "r239": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-3"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-1"
  },
  "r241": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-2"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-3"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3A",
   "Subparagraph": "(24)(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-3A"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r250": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r251": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r253": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r257": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-15"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-7"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-9"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/715/tableOfContent"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(o)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(p)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480126/715-20-S99-2"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480266/715-60-50-3"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "70",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480794/715-70-50-1"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "17",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480336/718-10-65-17"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-2"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-3"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-4"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-5"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.C.Q3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.1.Q5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.3.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r303": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482916/730-10-50-1"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/740/tableOfContent"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-25"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-28"
  },
  "r307": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-4"
  },
  "r308": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-6"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r311": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r312": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B"
  },
  "r313": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C"
  },
  "r314": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-14"
  },
  "r315": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-19"
  },
  "r317": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r318": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-20"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-21"
  },
  "r320": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-22"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-23"
  },
  "r322": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r323": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8"
  },
  "r324": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8"
  },
  "r325": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.5.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r326": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r327": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 11.C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-2"
  },
  "r328": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "270",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2"
  },
  "r330": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r332": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r333": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r335": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r336": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-2"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r338": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r339": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25"
  },
  "r340": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25"
  },
  "r341": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3"
  },
  "r342": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3"
  },
  "r343": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r344": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r345": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r346": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r347": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r348": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r355": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r360": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r363": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r366": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r367": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r371": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r372": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r373": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r375": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r376": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r377": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r378": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-30"
  },
  "r379": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-30"
  },
  "r380": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-30"
  },
  "r381": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-17"
  },
  "r382": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r383": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r384": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r385": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-1"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r388": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8"
  },
  "r389": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "12A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A"
  },
  "r390": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r391": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "330",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478411/912-330-50-1"
  },
  "r393": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "924",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 11.L)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479941/924-10-S99-1"
  },
  "r394": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "940",
   "SubTopic": "820",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1"
  },
  "r395": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(27))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r396": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478671/942-235-S50-1"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r399": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477617/942-740-50-1"
  },
  "r401": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r402": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(15)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r405": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r406": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r414": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r420": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r421": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r422": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r423": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column J))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r424": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column K))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r425": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r428": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r429": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r430": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478822/944-740-50-1"
  },
  "r431": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r432": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r433": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r434": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r435": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r436": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r437": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-11"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-13"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-6"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-2"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "27",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-27"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r453": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r457": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r458": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(16)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r469": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478297/946-220-50-3"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r488": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r493": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(1)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r498": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-1"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-12"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-11"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-14"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-18"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-21"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-24"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-4"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "52",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-52"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482836/275-10-55-2"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482836/275-10-55-4"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482836/275-10-55-6"
  },
  "r521": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r522": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "48",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "49",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49"
  },
  "r525": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482548/350-20-55-24"
  },
  "r526": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "64",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481620/480-10-55-64"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480482/715-20-55-17"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "231",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-11"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-11"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-13"
  },
  "r538": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-13"
  },
  "r539": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-13"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481372/852-10-55-10"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "605",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-11"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "605",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-14"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1"
  },
  "r549": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1"
  },
  "r550": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r552": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r553": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-11"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r560": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-K",
   "Number": "249",
   "Section": "310"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Number": "249",
   "Section": "220",
   "Subsection": "f"
  },
  "r562": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Number": "249",
   "Section": "240",
   "Subsection": "f"
  },
  "r563": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r564": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "405"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-3"
  },
  "r568": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12"
  },
  "r569": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r570": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r571": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r572": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r573": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r574": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r575": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r576": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(7)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r577": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r578": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r579": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r580": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r581": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2"
  },
  "r582": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1"
  },
  "r583": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-4"
  },
  "r584": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r585": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r586": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r587": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r588": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3"
  },
  "r589": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23"
  },
  "r590": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24"
  },
  "r591": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5"
  },
  "r592": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r593": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "55",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-55"
  },
  "r594": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r595": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r596": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r597": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r598": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r599": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r600": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/310-10/tableOfContent"
  },
  "r601": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2"
  },
  "r602": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2"
  },
  "r603": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-4"
  },
  "r604": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481569/310-20-50-1"
  },
  "r605": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/320/tableOfContent"
  },
  "r606": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r607": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r608": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r609": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r610": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-1"
  },
  "r611": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4"
  },
  "r612": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r613": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r614": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r615": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-1"
  },
  "r616": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r617": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r618": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r619": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2"
  },
  "r620": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r621": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r622": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "720",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483384/720-30-45-1"
  },
  "r623": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10"
  },
  "r624": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r625": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r626": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r627": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r628": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r629": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r630": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r631": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r632": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/825/tableOfContent"
  },
  "r633": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r634": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7"
  },
  "r635": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7"
  },
  "r636": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "912",
   "SubTopic": "730",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479532/912-730-25-1"
  },
  "r637": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "932",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-10(c)(7)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479664/932-10-S99-1"
  },
  "r638": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "932",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477385/932-360-S50-1"
  },
  "r639": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-2"
  },
  "r640": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r641": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479432/944-30-50-2B"
  },
  "r642": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r643": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r644": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C"
  },
  "r645": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D"
  },
  "r646": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4G",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G"
  },
  "r647": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r648": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r649": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r650": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r651": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r652": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r653": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r654": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r655": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r656": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r657": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r658": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r659": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r660": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r661": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r662": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r663": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r664": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r665": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r666": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r667": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r668": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r669": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r670": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r671": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r672": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r673": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r674": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>102
<FILENAME>0001376474-25-000751-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001376474-25-000751-xbrl.zip
M4$L#!!0    ( ,T^#UOK^EJ/\!$  +/;   1    =&%Y9"TR,#(U,#4S,2YX
M<V3M'=ERVSCR>>8KL'E89:JBRV?LC;/E^,BZUA.[;">9JJVM*8B$9$PH4@.
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
M:_'SA'!.G,$L>!BZA*JI*W_TY0\CN_E>U?%-,9\H>CD3$4+B"2[_,F(M=-L
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
M"7M_N#\N8>^3@5\P8>\/]\<E['TR\ LF[/WA_KB$O4\&?L&$O3_<'Y:P]^G
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
MP)27,S=V;*</5/,=:-ML-]Z7C./ \IBRSCT;%A*@3^53C(L-\1'NH'QD$V
M=Z^(WHZ0WGKT^V<'Z ,#.T#V8\1Y^.Y?3H_UF/3%7YB@[/2B8]JS?""^/;WK
M'!0MBW-T*"&'KSR"$Z!O%9#D]R BG5LKF4A@N:X<RQ.*+.28NPA;<I'D4'D*
M*9V1)0(?A%>?X6$#)_7@*?IY:2<$M[FN?X=@X<%C;$^IH4!]:VSU0,_CP8=(
MO]/'GEUCQ2@L#><^>0JYLB!&3@@[IWE>Z>#0D <G!='PS]CZ+JB(*.6H!*1
MC.$C40D M(=SCB)$R#$/G5# E;293)4(+3=ER;-83HNCZ>PEG$8;"*0/GA$'
MC%@3(HC4/(86*!LV879+M6H5B6Y8'J..1\?:IT,MR:-C6C1KAII(:Z!FQ$<,
MV$XX(06-'#*/6%6:0C:<%24"<F@ZD@[3'3U$H[0WFE0?(",*%2'@NW(@H6^N
M6NITJSB*:Y$-COP SQ*4P&8U;ZM.NK(,IL.A]7'Y?+[TT4#A[(H)2C\X_>^&
M#0< ?[B6[?(V@:C\"):"/(#>*V^@'Z, X\[P(\KT<0*DQU@5CWB3_#,#JCR$
M2=;*RTGVUE.<T8J!^\ >^X!5P#GHO22V$S[O,'KU5?,!R<\RA(*0&X)V;_0G
M?3?#:B3N.#AOU --SKJ=J'5,U)9GN2\]/<;QE!:/O@,9 4L9 ]%E-1M6C1+E
MAFZ1&*IK7(A(OBIPLC64G&'RZ9O3A<MIO?EL-45S!)L:'LSSU$)8=TAOIYG2
M@>_!\=#=_IA ;H23D,:S )/X@Z=.PT,L)R@9F(A D_KHE7"(@\BX5:M5RY\6
M2+1Z8#U])V36X#'*@:00.#.:WRFOS0J/ (2013HD-GXC&(.U K@R)<YSX(.G
MKP%')QM])*E4$(R!L)A3TH_X/)RT/?;#T,$A)D3:L'*L/(!GP(+OF*)])UG[
ME/!\4/S2&Q"' IK"C8J.5)3A)0/G)I:M,R1-(=&YC)"ADO(#I"S#5FJ P%F'
M/L_&5,"DRKEX-/[N>,#.&YW:>^,+1LEUZ$UH*:">2VHC,"+P'A+1TWK#U#,D
MB[RQPC(<<(!F".K_)0.MOQLF2I1%6/11TI2YZ;/ ([!N+=#4\ P(&WPJCPJQ
M@-R9T>JLS'J2G6"="/'.QU60W=(30/V_0NFLBHJ!XGLQ;F0%)L"&MZ);!3&V
M&+/8%F/F0)N$H^R3_1E*:\\?)+>(T=CU)T+*2[Y>LMQ?/0=8F)1C:#X#TIPA
M*D6P6G(BPK]96Y$6@%^$,H.$3 '?*ZO7R#<D&A7U^M#?'0W!@+D98K\/R763
M0>]W?N#:%6".A)0@X^V9G:((9E)(+7),]KIEC1?'93HV:W\XQ)U5,%ZJ+05#
M.&^-/"B>M"5'C>-&]"$.1Q(E1/BB.3RE$?Z$"RO#GN#9TRL.L95^HBWDOCAE
M#T3K!,Y[8&XAM4U)R^&3A2AG"FL7)5:40APUSLMC)>H6(4'ZH#4A<2N'@SIA
MJ'0D7B(PF>9KULU>JYU) P%VYHE(FY.K' LT=E:W2Q2&X CI $W%OX"G$/Q>
MM=ND[DUC2KH64(_'Q'&D@6),0%]'1PVQ]R_6Q*B;<G0I/A"GV)*XQD.Z!<FI
MUG$$HF"$.*T-4AW(>KG\,P=YZ2\)=1K++OO]32%!8OGA/N ]\$J\%&2EV#E+
M"S@HI>5'SNZS35";D!)!!^#YZ;PG5H,G=F#%(.:4QRZUR."*D<4>P%SQ"*=]
M$U@C.%FN3-8?S1P660T7_B06 "),S$JFO!YGL"O?&CM20+9[ E8<LKZ&'D?I
ME&$-'K7LK!M6FJ2:67\F*4DS(A+L)!<2J*P"!TJ["87P]'+E.(CN?&:AVM>!
MR+6#1V09R=WS9G4>(BUH-FQZRG[,&CA3UO"N$8N.; P(>!)+$333;BSDS"CZ
M@.VQGC9P K(C0,6:( HHCP3  A57_"K'9YS(-3Q>[9:L[2N%H.3D>/VTPW=Z
MA<3C%#YH"RR1#>?T8T ^-@G_86%$!D_OVG+N+#!M<O=.#_1P)#QJ[OJ62:?E
M?0/WC;#6C6J 0NG9 :2)I/#5R:)0TYX;+S%T]WQY<6G=81T*FZ%I.RM'K,+Q
MO@6*'B<!A !V-LKL3-I9(=M2TN6@R"#?I8%)A!G?L-31Z/:$5EAM]>Q4<<FQ
MZ P7S&]R/,/;I$->RAMU-9KAKDW"A/0;*]D QG1PXHWTCZ*<TQ9?D!G=A% G
M2;F&\>L8EOG%^@/XWK$*7!0\G,/*/N5B(-]/XBU@L%!&OK3!@7<'_KV#IP,L
ML5%[;;RIF:]+A@DZ.>)!"S[KRNY;/&P_#D@Q3^P_TH[!=E+O'. 5"[ZRJE[9
MIO_16YL+O[7!(B"#D4$V(I*LHP1&%MS*)F1/1KPQD %ZN6OU9RBI)+%XHQB\
M>47[ O8%ID8)BY=L@98M,YG/(/]!T]Q1]JFX(58HA@:8;&/>)EI[#D>J(\UQ
M'=';L+6;F]B @%^-VNZ=Y[5 30<'C .A[/CA62A#0**A?]?'0&-,]$;.IALO
MR5% #4\8=X+<PYE?4V:1L>R%G6_8*RGWU<>@&5^H'!@1P=4B<8I88ZN+3SCS
M(4&;V>=C?H?K4,R<O%NDIJ&S0CAC\HR0[@0/1QT8W;(==HC EL3W=/FIK9\$
MHW(LK'19[$:#&V_1O8V!6;;G--4=@S/*OCR<MBV! :*]&)-W2#GFZ4=DG!(N
MO#P9C8,?_Z"HYQV=B*Z6)#I+7P6Q93PH"=D\V\V[2NG_54AQQ2TQ" ..4'+=
M6B1;9O,[4/"HTK:"*P?4P\_"-?=$!#B6D6"*HHR!L,DDNTDA@$'/"$UL5<L:
M<=R()]2RPY.C4X1Z0#&.QR$6BSVN%-O2HMJS[TAB&<D:\:DWZ" A/"0KB")W
M\ 9\,)AV]QQB DVM9X5.FJ@T[QUH\:-D)X==XE()Q^SS*RG%(5E!GZ[NH<.8
M@\-(D')SPE9QUE%:*-\#<A?HXLO5("AXNI,Z!%M: !PK@ U3>"--7"LXTE_[
MI(B.1KZ-OF2P@N\BW@,EL0$^H2>)[23TTO8%._P#4A#8XS^5O,;)?.1R4BEN
M@0X<+:M/#Q20P\KS)"4D+E[I7YLRUBH,$>-;OV^%%./$/*>YK^$4#,F1I"F8
M[T%,G(/ P6-/6H*ITBYE3@Z!R@7I@IH\V1HTDN5%(HD)Y6WJ;%'!/ 7W^S%?
M^ZK1:)![GUS]]4X'_\C:#B7#GSV=)&]F\?>G "A+<,T]@\B/+(RCOS)+9L-,
MU]<Q<]97608(ZG@67T*MUDD7T.!@R-0""LMMYFFXFDB^%#<Q-V/8/4T7L=EU
M**)'/$"26@FUNTAPYHSK8S#/M>Y4KIC:;IA\EJJG[80<U,_D8["8),GKW3J!
MSU ;6J'2K1.K-E<2E1)E0)%>(MG(E0K2TR&"UQ/7^E/[8FF:MX<=0SV=XSEA
M1M.!7X!!QV-+IJ'(F8BXW[\+RZ5.XI'QYN#;U=^/#MXF4 UBE2:@GRQPJU'L
MWE"".9DV%!Q6:@9P5*OG.N$0%7D'D_FD,9 :"IH;&_.)5!">3],984@0M"9/
M6D:WCJ_>C-9!W!^FC\QZV)]P^+AAZ;.$YRZSW]U&#I*(&H9D*5?1K3\5ILK$
M<!_6CSFU1G^LA;FY=.< C34D]/0V-/9BVXG"V>P!/YD(Q!ER:/A2'%H3WFIG
MTT;F,[$CFMZ$BKT5(]32W(=:\N3OJ6(HNR=SCPC_L[X97;RA5#3K;=:?=,Z9
MS6\RZTU0FEVW3.Z<-,M)Q:XQ<#GU6Y:3H@2^\7U;\@*D/2(()- I?NVE(9:9
MX+?V9DI<O"73&/1X"TM-75;QP"@., A,3D^56K):7XLL3:NML#3M2+$8G,AD
MG+&'H4#U:0<?KS"[GOQXE*H/T,UF*V#T2WK-;,GJ;U5^F),VDD^OH? #,DT
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
M2OG6V=Y=JH2ZI*>ERR:U"C=&V4:&JK_0A&(Q8N+/1)1D;K'6/"GD$G"7"H6
M*"EX+/L>D6J&+0_1R(HIS,UYSMR7>BY)4&L<)$],@$K17Z*3>OGI?5^,*>E>
MKVQTK;MLV(+"T)9#&=VPV9ZKN#NIA9C0)&3$FF);DS0%C /?H<HDD$KCO%7+
MB8#TU(%+Z:G8+!BQ)&EKG *2:40OR67G*#<FB'QBCND#"!,H#X%KA%56.G)0
M)^C'(]D3'R'+I\B]T'120R.$TM +8G;,TS"/M$D]V!( Y3+*H"-N[XE@O]#S
MW4\57R^TEK20UT/SK:<IC%EAD4A4ZJCMD5]>3M@96]RPC"X)[+2B@-KMIJW-
ML(1K''$MEX*H; .LS?KBD#H^-*_:\*<P?X62%,.IA*419H&G M@@H3E.:Z#^
MB.T;?@ /X$G+$)D#ATD*2U;P+?1(!$^2-]^;:$O[*<S,A<)HNP:2)']34E3
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
M? NMS4PRH#J=;YH)N%!Z$T7UB%MQ5TI>63H"F8ODLE+[CIJ'\JJ30Y?[R*Y
M]JK0:C>36!5YI<-(63J ][HFKP)9[%QC75N99%J&P1]^3\>A$GVA!>_T#:O7
M2"=^MF,G*@&@L!,5$#0PR.2FC#,44>1F$X XH*L6@Y9$ZL?-Y&%($N'J:AQW
MK@K/-7&HXE[LA,RPM_19%-!5UI*=5CQ.E$\^261B#2@A9!X-*/'+\5*J))<V
MN63I'BUTFET0A3+E2_)7D1IEA.Z\9S@VM,$IPCKVO471)=^_RX5Z65F6%@R3
M<UQST*2+R/*F6'I=DZ4ES))T*U!P?.4+)B:1#$T?.-&\A:G*:W:TT7*<P=2*
M>"W9&&?ZJF0YU  234!R.BMN)&U,?5=3\-R$;?J-U)E0#;/5YMAF<9F6%@X=
M-7$I*X$3AI8<9!'BE"ITV_VQ0K?/4]$^A#AV7GM5.00$H/<=?"1307;,$-1R
M-9, ,7<B:*OSFHMMI'&@^[ &&9TPX9+3UTH\3+4?N QTLWKM]?0EJ$ ;8]^1
M'B<G+:IY<)F-DM'LKFN9#7.A97XX1.CO6/[86:9K9YKII[>4-L9Q@&ZM*?^"
M)WA.'@NN'K<""/66FAG^F,B^K H Q^FI=@NQEZKCR7'IWC TC4 ;/T@%>,Z#
M,NY^M:S2@:ZMRH,/IP1^>IO*&</;,QECANLDZLI!LN?,O0\M+KN,_/MS%K=C
MWO]SUJJNK7M,J=REE<^Z7*6&&.%>LGD8A.#6O9Q'Q\&EU#.3YALFY6+YV8X8
MK'7ET5->&ZEV_#Y*R[0F5/JNAB5CWP*R!>'51 ^,:PHO55LT#;/58A-E5!6K
MP1/Z*O^Z+XL>Q0B;)) O>R [)&2'[])[O=PD01YJ2_23NS"=CNR<?7"H0&62
MDAJ$'DG\,2]RGU9ZS/&&JS@!K:-GX>#)7I3]EEL!^1GPI68(V%580C%)[D$-
MKA_$L.Q;*VD9*[_!/!9'1N63*.;\/>MO3#<N>Z@FY1%9^.?!G.0Y/,]&OM)W
M,DF#.K)(O$BT/5H#CCJ4NC--++;Z26MW_#T@VV_&B%$C&.^&*4[(Q[."BQV6
M+<?F/% Y[&E%T83UA@XH]*Z;0WEHZF ]BIHJ[:NJ$<KO"&-LE.60FFW=R]08
M-C&E1$2U8AZ1T86VH#"E1O)Z HA6/9:7RZ)&:'*71:[+RMF!ZHE-D38>7)'6
M1<_+D>$;M#RIC*C/>PT8[WV1.VV:9^Z1L:CZCZ.1AJ](ZJ3SGJ@X&V9$S(&0
M"DN$&IO+' 2Z-])&W_!LK/7RN!8CZ>/(4579MYCCT&K2A79W;AY7HJ[*]W/4
M3=><R#RE!^(T$,8>,57>_<JL5UK80LI5V)C=!DX3"&QVH,HS) =>/E]5!S8S
M5 [_?E4K=1HT?#>3#S'[I"1G"7ZM@U+\YE6K35'0M]1@69G::H*Z9RLJ8LL:
M 9'1YI*4L'G'K<Z2\]M46LQ0-92?F78^DS, 5K_F7AO,0XD@>806S)ZRU66Y
M&MGEJ6*7I+D'RL.0.*;)M1;*F+@6_<YJT42*$A7X%LIPR(,&O$,3&JF/%8$@
MR_!H*A\Q9_(.2Q:^FX'<;&F+ZH!-@3(_56^X-:0@;[2KXE^ITI:TGJ9T$7FE
M_/DPDY^9>2A\;;EJ!'HH2$TO)>6!I#C8(\>CEC $:OFD79MRH3-.U0@6ZQ0<
MVT'Q-'!<,54:(L>\TJ#<2,9+%*P#@4W@4N?R B,LU3.P[F\DQ:;*->V#]C61
M]7+A;-?+5XUNG=(; /:.#!US5BN^LE:M%Z4[QKPRM=QJZ]TK0<-.*DGU4NJB
M+D>^RIG6X@-2&K!^+[/A9.PF8=\9A--L)4JU8>%'!:)W'I<AO5OI,4<D&>2C
MU V&%4>^=#&B*]&UQJ%XISY(WU^];59,]+1]B!(_H70/FK5*N\D_H:'@HJ?H
MYX/Z 6H0 $ST)Z*?[T#=)A_8,BLMNNMYK154=1G5>P5.F*JWCV8$I>AX&-FT
M^@=7W*W +M^/,5?+NRE3[/5=4VU]10=$"SF, CRK!^'\X$IK[6:E]LQUZ>1
M>\U9Z&/K,,U*9^70>>RE[4:EN?S>I4N:3[7<KM2;#SFEM9YPYS*[WCC<-72J
M5_;8M"@V*?:H0A;P2F+C1LJ*-H)M;TX$H]O;E6';BK>VJ\SM"B.-)73\;Q0E
M5T$8"D?5Z5(_IE6PD@_?>W82FI3US^\L]$+&D7C_:+B/UM'&1;SZ< B/>N1Y
MTY!XX 6\[U8-GVV6VF85=64%-WS3TC#<.C?>-OX?^]S6B#/_L*AC3P<[1@=5
M=ECMZ> Y6(<M^W"@- ^23H>7<>AS:S21UR1X3Q2/$D6SM:>(9VM&2[@(]_2Q
M6_31J.\)Y-D$\DV6])+[;D\!NT4!;^I-BO+MD?]IR"_SH7I43_1 ?M&>+G:+
M+DRSMI<,SR6.B^*1P]ZX?IJ4J-;V8N(9^/95J-2$/>;O%.8WS,:NR8%#"G,7
MILK'K/Y893Z+IHB<:9T[<L+T-*[JS9'K&@/G!AM_@X[)35%5GU8>POK@0S K
MD#,#1#+>>4Z5S=M*3H[$(UD1C7J'F&6&)!N55G-.ID1#L=9'.5^KL1'&EZ1K
MU-)TC9%CVZZ87E"CGH0*WU61GE<7)9P3ZS1^GSXH8S;HF6R@\=@&ZB8?U6;W
M<,R=0*86_FPI3?BA(K?,4->XH:=+SDW#FVA^R=!XJ[N%52Z;?-1J8[:4.G$J
MI)Q=JOJ9V- #O\M0_X9(X(A3H>=O&'8SC=YMXJ$/YBL\ H/Y>UPUV623.:H5
M<Z%DCD6Y<2XV-%J;1MD+$= <[ 4967,I1K8&6T/VDUJ266U?GV^L3Y]O=DF?
M;Y5JG%O\1&6^U2T"G&IKA!.EI38:I6;G67!BCEU(J[&U;N@E23E/!-Y# F#E
M['D%S'CE'-?YV'C]X= I/*]5:4/4J*- W/:)W+'6*'7,9H&YXQ/IL58OM1N-
MG>-F3^8^,A5J-[B/443VTUR4_72VQGM^"?PPE-V2GF:5+FA$U,?WANW'Z!=:
M25+T3BB*-;/4:'>>R0IW'\YK5S1KU5*GWET+:]Y]Z*]=46T]"_1[-?5C?5$Y
MT5VPW&@]KN].K5Y]C]$ "TLX<?UR:@^/I>"N1!O47_.@V6B]WJ"FF;N"]E(K
M:#^_@G-1E)[U$39JE6?;$$L3?,U\=G#\\;#EKA1'/S"?,W]"(M8U8]S.:+Q.
MIA)A8;1.@YQ=[,W\+I-GX('-UQ7EWM/:?S@/=OJC.*'K XNFUAEJ\+7Q!CE#
MK?K^@K]X$[ZE+\SW;[DQIME]G6G_01-NL"A@YL6S;4!^XTE<];9QH5['W5"I
M&=K4"(6\-2>!2^I95._J]X36*.F7ZEI@@^MO?A)TJ*53F7:9!RC/]\KJ+P6<
MSFN]"^DRL$'4\>)1C]LA:_ I*_BH\=5"-@R6>\5>UW($5OHD58.?]!5-7_AP
MT+>9]"CW!+Z5&U0E7>RL.2.6=ZN' 54VS@ZV3/LTJ_;'!*I ))-[#,P[&(?Z
M?._P73*8QG)+AC;2B\A6@$4VQHG6A]3DQ0M%=L17:-T!]=<UZJ<C2Q X&0/
M>(3]250#6.U5:2_8NZ'/J!@*P1.GA1/B^/)#H!EN]1S):7'4 MNA3&T:/1]D
MY^7T8L>UN<<C]E,+'!L1BGI\161@1CSSCEKEW\RYW$+"86JUC%J6Q^5TLL4^
M3+,0DS/I:HU'[^<VZM397)VE-C@(SR0=$1M6C-W"VB.#$F1L[(21C,%C8L9&
M^8_A:2E/U^.6G9JT(:P8."&V-7^T701-H@CE4%H@A'7#<YE$E%K+G,I",:N=
M2E>FH3P6;:VJ5@!K3[A>3+4SF^W*;&7Z9@*=,TDG<R*>FX5I+H(\'D=OMQ:#
MX\8R2:92-9;)">B8Z4X*E>"0D\VQ')+DNFY6G2V96[JA),73\&F.6VD]?(3_
MVYUCGSZ,+EM8:.?USJ'#5:)A+8<.JP9CO;;4(:_W];MQ=$>:&GG":N1VS["Y
M'*&N^O6MZNP9/M^]LE9?"JFFK.6B 2$MYU\K5Q4P#-0 Y^;K*8,I._8G49*/
M0L>:FOO<KE23CJMRUK/VS>P#T<<P= 8T \ &E1K6V9=C9>3,*AI7R:\$BPI!
M+\?EY9GAJ#M'(&MZ,:NUL"0/Y^BX>@.]V0G1V*C4N76B9%[C5TUY[TW  O!O
M FL\A+4%XH9;5J]9[]^K_7NU?Z_V[]7^G57[4:846N%O%UK+[[1V4#\$?6"[
M"J%A-K>J$4KUH;%[9T?=1;9\>!)Z\^+3&SU"<_=T>U"%;[1<M4?2$/#/1NOU
M8S$[AU1F+/:4,TVFHH(YXPEV+ (03?57O^. JMFH85!9A42(^1,L,!*"Y;*N
MGP1A(LTNPH$6@F="M"NF,GTJ1O8]C?0]]<8SWU.OZ^_!J1=F9NJ%-MQ1/<^A
M86%)0-1RP82S)_H837Q09VI\!CPH\S)]R<FCK>P^:>Q;9CRG&JI"4Q7:S=?J
MT?JV)%)JRZ6Y(3EAK#1.I1?@MFNOIV9H2#,,EP1GD6.\);/6<C954L="-F=N
MC%!.&Y<33C"@GP6$-/1JT]\WLJ%+;=Q[.DI!-R>CJ1'A.IBTP+UF=2($\&OM
MI:U22LR!&%F.AYM=^/9VI5#S+4US7_G^2-9,@L<J_Z6DS=I2;?5*4GSP6\)2
M1IJ$/'A:RY%)4B<>R9S0B"I_U*R:/SXUXV#JJNGZ^NQ4VVTD6*Q(*E%^8Z8?
MZ(G6#_28^X&JW,=B.(0:C6JELT1#@L4+SIN=336!7[PG07.E/0FR&;A-S"Y\
MG,7]/N,]?&I_@EJWLMFJ7FY-L-*N!)M#DH>3<S->BZ=[C3;N'V/GV!/W6:Q]
M-)9))&Y6ZMOP^Z:M"19L2T S< H([V<5!C3KE=I.4HOL2?!$#C9'I*R%@UT:
M_VF-QN^-DSFHEKN6-?ER&%=>&0U5#[KE!;TRZIW.DBN1#&/%U:CYJ^,6XDLL
M3G*)#;0[>VPEC?HZ&JDJ/URN+W6*\FK5G(Y7:Z.\9&WJOU3UPW\\J?1G@V1@
M5JISO*L;7$2U,B_T\@ 9K@ZI-TD;&Z72A4T:EL6[5%[T\+P,+0D%^$5>9DB1
M;/UDTL$OVJ2#H^RD@]-DTD'Q+/_JWO)_DJ:Y7LN__JCEWT$QO;?\]Y;_CV?Y
M-[:3\?6B+?^]M;]=:__*^$7:^T=;U^A?&:99:E3;!3'US6JIJUHS+6YF-.;E
MWZQ\@3)+J+Z[-O_S+8C<QA +V/JYC>CVMGZ>D)R7"U?8-3 );AB57Q)1O9RN
M'\N, ]3,_WSKOX2?1YP50#^G-\"_MA,9+F8ZR.?M6..%#\[';]S\Q+LQSN7P
MD_5[#5;[Y'0':0>65]U2JT8JQ:/S%]+SK"V+ ))=5XSU;6Z]9T_-)L[56,"=
M.WA]JF%:@I9_C'K9F+J6$@SM /B!AZ5:X= /(NXJXWBW(HS(2TC59/"'?-'N
M47AVQ)<\[6L>\;5K1YY-31.# ?9.N:6)94: ^61O3J\OWV+29]]R^[%+K9YZ
MA!;Q&""@$L.L,(Q'8^[Y% B7V8?6B <>[B=L1;6*0C%R"XS CT-^H>#G.Y$8
MA3I^P1H2MC.5#IF3(VTV7Y=F4M3T1VA%BL#:S,[K%3&<]39'P1Q4K^^XCJ6Z
MV,P?O:@2;L/(BN+(#R9\F "+]"KM=GEU'B+0?5LLAU3/,"S8Q_M'/.+U;E/V
MIWNTQ*-6[^A^J+7X-)8NXJL]6MI4U+JXI0K\ENX26P1GU')'B7'2Q=NQ%NTT
M<T;5+%C/6RWFP);E3W?!2C')1I[')9#OQBCX<KDRER$(>XJ9+\-4MM_5=YU#
M"PG^M5+=;"\SMC"7+3T=4)UG=39MM2B2N_US6F/WY5:5STG.HGGZ.9G59P(K
M]ZPV2?!@+$@5B]0X,) L#[5HVX$O09_N"Z5E;8*^-T@ES^O_NQ(JV3"N/3BR
M=RVXII-S=[:C>)*]@\*&/6Y+=<%>LSAY(OM_T^ATGS6M>5-8G1\37S_[?R*[
M?M.H=IX#UY='/V=^(.!]95!/P3ZFYDB6=^.@R9IXSFSN-/L"R*I6:^[):@UD
M93:>-5S^Y9'55>3WOQL^N1 YD;0H!LY32<=<](1?GHZU%III=+=L-A2.9CA>
MDVL^[#CQU!I;-.5?*@%MV^S>//WDT<M3G/&)H[*]XOC 6HBG^6S:6?N^GTU>
M.W<R1(%F[9DN2DF#FS^?39+I<X-FL\#8@;%W:W>0FZ56K;HRSK %2*_$P_X"
M,&7M+GJSU*W55LJGBH(M.](Z\$/OHX$1V,'BKB9*T2"7;OH511)M3H'I^\'8
M5T/9J.=;*%S7N/%]FV8>A2*X=<!NP&OE:].&:BH]YCPR>J*/#0>M6\MQN:OW
M,/#C&VY?AF&-XU@F]OS#[X7&$4<X:E6S:'W*:C]VGS**]']V_HP=&YO7X8$=
M6V,'VX-=BM"/@S[V)?N,K2;A_(XY,1>O^HR#XJXQI>]$]*(T3R"[DDY12"DS
M_0RS3B>&F^PZ$/ I$)B5& +=C*D](9 2_'7G!S1=K"^!@EM7GRDU&1Z [<L\
M(>R$/GZ;N@FGCCE8$ITFO.+ *BODTNG<]$B .O[A89R_I#H9TE@_X=PBQ95D
MF34^ 5OTCRAE3EB!1\/)'&PA1^/TX%4]AQ*W0^U!8VO"3X%O@ACO5(G;--9,
MWI!]S$,OU-/T9F'-F(3/2*$^M$)@(R)Y <%CX/IWG&6:#H_<S33@XUDL"1_-
MF::)=J]JI5:5!&\F>_&563+9]S5_N.*Q3,.DY^?@*:7ENS&^UX--P9;B@85]
M,Q%=1U9_"(2.^!8)'G:'A$$U_24C'M\$ELV2(1+]H0<0N)FD5W Q0!B*40_P
M^Y >8<##'1</VQFA%&(2RT$50@;J?LC(CR\96=]%_AX C:PQ/.^><!#>!J#I
M-,FM@?F)\+,.5.UUX9P'W@&Z R[J">D V%D(45?$:=#L6.+R--0M@![9 P0^
M6XQPDZYD^+(2@QJ3?J'"QFOCD^5]E[U*DQ1NR4UF$TBE(Q\>5:^6C%85=8PN
MO ;.Y^K;V26GE8[=.#1JE7H+Y[O"^@+*-/5\PP<E E0=ZG7:LUS+ZXOI%JXZ
M,M&JX<Y0]&,DFAX(-#C%&ZY,&;O"3OO*IDL$4<]\'1A.2)-- +7@LQ2'^+RX
M1Q-)J $L8 5=[\66ZTZX4VP/0,)+CB061TRSA,.N;X&R%5,_UV@(ETU!EWIX
M^AKZ&P-!^^@/X5B%79@^&5\L#Y0C6F%/N(ZX%5*'S *4&#D<^A V5DK9>CC-
MU[E[*6@Z@7\GQ26P"P"[ I4$[ PR,K&&\6#@]!U<#2JK,0GM&Y\&8Z:#AW6!
MK3.AA!5[0"-&="=<0)$1@&18E!ZD^64'O8_G2BV@O7VQD @](HWDEU0=6ZJ/
M2*=1::RECTBKMK&>^<\*%'>ZE>Z\=6ZP20?:?1FU8+$TW#D1XBHU-2G6EAY*
M+*X_MJ.ZR3G5V]_2N9K2>_CF1)8^O9TS&&8GB.?20HT'=N=8[C+)8,TFM;%9
M?;GN*OQDU?7YR9KT;%D0^<04CGJC8J[C>)_0(*35HMK\@IYC<XWG2,_N=%[(
M.;;K+,=7W#:C^ $.DW/56M5GY529:V)F2Z^DT5I+%X0<QO_!^5BN80-(9V=E
M%SK=RH!DH.*C.ZGXTNN)TJ9=JM7J+X-/;4O>/%$^M$H-SN7;?<AO24(\D:-W
M3'.9,.2>JZ=<W:SO-%,_P]8R0V%S@/+%\O1::\_1M\'1:^8+@?MN\?/F4OE'
M>W:>LO/:;K-SS4&]"DZ^QO&_:V+TG9)94)8CPVB=SIS>@$NS^YTZG"9;5LV"
MZO?J<.K+',X#,F&7SH9%1JNZ-P&>*#,Z.RTR]/@FQCM]V9MN+8)D/?UUUB1+
MS))9[12979FU5<N273D?F6C?[%0+?3[M%8N3'3D>&29HM)]7>OUC2I-RO;K3
M\H1&'V_$_-B!$I*UA\:[I5K-+"0/-*OSAJZMVM+9 3Q8>VB]6ZIVBVE:+8D'
M3S>J=@ -UAZ:-VM+]6Z8-QK@1Y2[YH)2MYDS=7.S0O<IDXD6$[*KIID"L:&5
M1EKV,%N,>1<!9KD#QUXV@WN@K<!.F!!I GX4!YY_.Z^7R"8#T[ES?BKMW:33
M=461\X!4K\P9]E5T(#W$S/;L:A/L:N?F-YUK!<61\2H)1N8439:P_HR8L)JF
M9@SA+RK+LI*6Y&D!:EEXMBK%^S:@,K?25)%FI_L:'XH5U5C *O,T2T:=OAYD
M,GVX-*Q#OP1Z48)ZQY'KJDH^-7HDB0G0TE6S],C'6C&LP(Y'\">V./!=F\H7
ML8HV4_>EEQ+B.&M\0_I4JCL;N'$_BK%HD4?A.".:ID'_VK%04T9"-7P."WA=
MH6H@J=[,IQQ5*B@,+1?+65'Q""5,;@*LA9;PQ<>J?@F%+$?3BTEM)P1#$6$\
M6Y[+4RCI4%^UN^01PLM\M"<%#A9)H&QSI:TJD@[SJJ3Q,5A$5,(),F,>4(*E
MF/H^"])>HOYCMY>85\-XI-H07&K]#(Z3]@*G27N!4ZV?P6G2B."3:D_P!H<_
MUJKOC\]//]%'\_U;>L(GK8%!>M^#;U#/^G1^>JR>-:^OQ?IX_.(=,U8Z0[X)
MJG:GN8;:SUIU7<W:%RZ![#99:=O- LY.J[+2B?=K*M7,40QKF=DW+Z@D<Q4X
MG6-7'LTV>5E"^^TT<EIMK0WB<LG-4DLVCE@N<FINWEQJ5AZ?JK5RZ-0XH:SX
MT#&)U6\X5RP'9/5.)XT0Z/]=!H(\YW[C28G+&ZS558YW3F,%[95'Z-?$\5!M
M6Y[%K9Q*ZZU=XF$KWGZC5&^V=V/[\YG4BF&"!FI]G7SHA3":-90CK(G3? 8+
M\)V!IMW6^0T07&='M()U\!M4&<W=V/[&^,T;$S1%GENUYS5S^Q/4=H79?!71
MR@VWM:8/Y>SAE?2FMDK-=F<WR'41"V];8*R7NJT= >.33<&-PY;W5BNUS.HR
MREI^6MF+9Z"MUJ[PSZ5!MAY%[2DE 2]$2=N1K6],05LR)>*%\I)'AZ1/,Y)Z
M9;MZ6#SJB8#BT9YAW8H @_*V-<'HGME^'ZKXN]9EV/'R>JT;;TZNOKW=.D.J
MUPI/D>M@1O5NX;>]9T1K9T0%93O;T59V1D(_FQ_LS$Y-E2RQN<S+^A: NT9"
M+OP\IB35K>^/>HXG0D[2PXI2'DJ1-Z4%+\&Q&)&!T2Y.;(QH6('5X]D8Z)4N
M8>:@+7 (#':['_IWQBCN#[E[OM9>G[,0!6;+T?P!FE[@_"73$0/\(1;X?C3%
M*?O1MB*19$WRBO,TG(%S@W-L @='P( 6% C7HK1%F='(?1>B.U]>&98RR^JC
MAN5%3M\96Y3/QZD7-F^ WC/&<3HR[1+N%%X8H\95KY9;-!!B57->UHD$.2D:
M>/"OTCR(V51:-7*%)EH$(K(<G** PRF2P5HX+<'%@4HT! B35:,@'=Z%J:*9
MY%1OCE[[T[(:K7$'RZW7"/K3@S4(4>O=O-\:>1-<TB/'N4F F_X=->W .0OI
MN" YP\'U0\0SG&K3;#48<%.O)X1^Q06#T^_74VUC>$F 0(UXJI+ONI@1BM-:
MC%?MILPU!2#A/6J(" #6,AC(<< 3/Q#*NSEI:+T\#Q IBD.5O:S0T>!.NYEL
M91J;E<W)IK$JE"0^<,(^ )IS>H> M#C=Q+NA:79T"T[9\>$W:S"0YZ=R@#&W
M7)U<J"Y_G*6^6S>L#VWG%OZ!_ZI79&JJ&ZR#+I*$22F6CTC[6E/S;K,FO_YT
MG.44DFZ]TMITOA_RBMD,Q<*M<3J+<M$YNLW5F].I5T0CYDSI@2*Z)\%TW8EB
M276;6>CEF=UBG/;1#1SK#4W9DG4\LB1%//VD5PVK5G-."X9-+:"9::RWS=.2
MRAS9%/CN6*R>4%<-/9R^UVAQ=X^MKJ-6JG:Z4^O8XF%>,,')2C#]2!WOUG?Z
M<B*O- *V3(*-;9-@:Y8$$X? XYJ6*F.IK? 8-Z-@@]%MP?_0LA[YP8R&W7]8
MP=;4:H-':/*\4!K/F"W1I-N5JJRLQH3%1$,_U%Z.DR%MH2PZL%7-VFNC)Z([
M'-C*U^**T;FPH_-9CVA<(VS.ZH%U6")3 @SD,?!6P;8R^5+(:/9O/.<O-E72
M:;C6B(UJG)4KDN+7WX;"@SL#8PPFKI-X@)25[(D;/W(0:F" TF#ND*9V>])R
M!]L_"JP^3T E(SIS.U:SPNO8Y)&FKJQ$):1@5E+">9P\Y1"M?_N6;=Z!$0YY
M9&ER9+]Z8)Y'L4=UFJ5T03CSLC]$C**!E8B@_B""H\<)EVIGNA?@59I%K6QL
M,M3P9O8^S!CX-*F\AM6_JF0GV4@6:=/W.&%Z<2 &+J$JWB!KDZU$V4GJ=^EQ
M&48\4Y(+#[M0>&^%TQ26DDX>>5UD);-.K?F;^ 70(T#/7<EP!JDP3P8N(ZC'
MZ 6D$:+I)$ST##':&=GJ80L>('A$+US'QC$QDD3/T^QVPY%^.\5JIMZ>#,)5
M*\CS]'!M=:B04;*FR$%.1C2A%_'FC-=4*5&=U\DP5J2]9,!K<@0:OW.M,&%V
M?\96$"&6GXE>$.-XZ5I'5:VC0XL)DOU#R*A2-YOT'4PQ3_F\G$IC??>!&%D.
M'8<"DGR/%68](PJJ)>5Z"VS:5X(S?)18N.P,G-0!<FL!PL0:"Z@4H6HWL6<:
M^TKF7/_87 \5(77"_"1!HG\]0>J!CPR>1M_"3[Z'G/FY7JNMNJAJ-=W2+J:3
MJM/>?#VMSE.6<5:9W8J6=LDM.^?G7>[AG0/OISK>&)577>^&_0>>!+@-E5^J
M=.5.J6DVEK'H&5.+@V@;AE>WU&I,PVNKF);VMQ"RO\5R8%SQ<KJEVHQG9C?P
M:>6 :'=J14(461BG# #-(?5$1K6>)O!Y19JU4J-1WTFDVCRLFJ5JZZFNT?6(
MPKFEWT_D[-NJ[$D<'SN+A04#:%*0_GBF9X,:S!QL!8$?#J,^_236!^=I4WY'
M477# /I10A'3_G!,H=']X;T\%2'K$<]QF6=\Q&GE^Q(^8KB$W:Y.R-F(%J?;
MF9D'S49(4O>KOH9Y+T[Z.B;NF] :"0-@Z*%?&1Z+>6S)]^B"1B^YE4FH- [Z
M28,Y,:. 9V&EP%DZP,:) -!0@5XM]\SQ+->PA>O<BF B&8T-RTR]PJ'0 @93
M72_]?C\.'O'$[E;$Y@%OFXY"F_*T%2T_K%;7V]P5U1O4VD)/N&>XW[HOP/W6
MV"; G^Q_8VQ>,>R>9^=F<'<;PS,?>][ZQ[AT>8Q+J=9<<(SM/*K:9*%,E@9^
MR(-K5_'9[5+-?&@<UW:)DUU1O*CE/.4M90>N[0"?2"GU4K?3W#E"*10@&7.[
M]8?X31'P]AD>]ZQ<V94IFA+!.YW6SB'XCH&:2:#5;A>6!.8WUGNJ&O6#C\LC
MNDC\)3M)7/N#G4O*B?^JD,2\(L_V+)EO]JR?2'3MG26V@H-7HOZ#*/\#N-E5
M+?;8FG"# !S%9)9,L_O0**9:[;7AHNN8QB\]DB.M$O?Q1L\/1E8ZMRC)>M8]
MII[-5T94>NX /B6#DV(O#F/+?3 -6*_WG=J=2@CFAXTM$ ,+Y0;O9$%!OQ_$
MJ/X#7#RL;L?& (U2E<?,:]449OUU;JI[DK,.=[6X*CYSK%PPC4<ER]_5(T.9
M:4RO=SQTQ#FW[ 6'E="A2U>_93CVSP>6:6(BK;4R=K5:0.(4CTB,C/91!9V'
M!OS]7S$VEX@LVA?B*WSAJK]/G+#O^B$VI3".>GZ,,:3@NXB,2R?\7MG\")^E
MP'@%U.F"M W$V \B%:&P/$=P+0!292#^C!U)DU2B87-2OX/5&R,FZN2:WH2I
MVP$0KCW H_"I]EQ\>A 1.A4#@V%>WP%.=@6G+KBX!1'A*AZ/7?H;"P%.K,@J
M]HG/C6P-DAV&V1V&F1W:L,/TL,=Q$")I<+$#G#K#BS!'MAVQDPC9&2"+85;+
M_T04@^?U$=NPQ0@6QIR537J;O-,/ !W)F^%X4\_N8=.9 <@(8#3/'DZW,(;5
MG\^Q%#IU$[9R3!R5V2?L'1A)4DT3&K]AO884UQ9^ :"2?U)W$2R[Y<>DR)FR
MHE5@X<J8S%??$\_E!?G'TECAL1Q50+?PHL!W&?$OL)[*1K9>*&"NPL(D5?B-
M]=:8-3+UR^J<ML37.!]/L5HST>'L!-<X"4"!;9R #=O]KE2CVE!_K9]0UW'$
M %0IT8])QON#@=,',?G&H0HKX%#.&.AMY@*>_L=WIQQUSMTS%[SESC2"X2QL
MO?82%O4XQ//:/^$5W/#&5QP9E/BHI!>ZI0>+%;5<HK? V^ZP>EAPPYQ;4@FQ
MJQ96$\,+\M4#UL3EL]/B,U8_0KY1KS@=.#RB%,10;X3@2TL23^^E1GI$A85)
MU[&2JH3$CV$\ B2@ZEE</+\'?]!:@46 -5ARZ/AV3EW<%1QQ %0FY.1&]598
MX<@)L5HUZ>>J1CA>I1,<#2.(77DK@B.4)=!/AL^30 /*>3R*7<(I+MT=C6+/
MZ5LJ62<.,-<(!#%7<K+L)OD,O\PCA@=0O:35#P-TW0D:"[*T%TMD WIXLFM;
MEUO;+[!+$O&:^Z+#6:UX9?*G]W8I\?,E0="?0DD0!M6NPSE@JIKD4M1L3</(
MQ+*IH#S:1<L^*YIT.DW;+%B!;'ZHC7I^7)P]2,'$4L,QNF2H0R,WTK-ZKA,.
MI09J8$TR-K^COVT@9^Z^N.B)S+IU,AND-A#8:8VR$TE2*6'CR3S&[#X7?G..
MH%2+.?=@!=_91^2HUS.XM97%:D5]D TX&]S ?G#8S6#()K 4$%$DJ.K_"N'H
MD^OI6W #]O5?=%3)'JZ!I]C 2C2Q8KPY_H9-$D$$G*M]2075*)?INQNVD<X"
M:R1PL'G)B,>V-)M@4V9=;>H3>7Y\[\$]#:G%0)Z2D/4'/A7FF"&JSF_'<C]7
MQ_3ZRS$]S43\(1@=*(^DK/8$=?N03L>TJ'TNVH7S\8ZT+<I')ETC=0 _VH"!
M;Z4%86X%D#GVO.46D:A$ DM$AP6G8P-GG!BN\QVU'=!^9FZ8)IP%CG$-%G-S
MK:ZR[J>*\8U:]9ZGVNT.>L2 \JX#BY34"]?RPG1RS:[LX"1%\V@8"!7AR$'R
M$M*9#7HX-D!%E%;:05:\@GSWQRA:L!"!^D2S.6%(H^<2[!S#K/::9=.().RL
M($#R1>DB#2*\6][@^5[YD9M*ZBX00\+J#^G%%($00# LY@CO&M4.NC-@Q9?B
M)I:MHZ_*_\RGH=HS::BU7AHZKFB./-R0-)?._ #T?<_X!QQM:#M]5B"(15U0
M[4L$5(?V*_U0;*I#IV!D6..Q"U8H-G-:RT&UGW!0M&7LM..Q,,[(\)J)W\QZ
M$"^.+J^-\_/S0L-\KG$Q+Y"#Z!@">98,$WB%68/_U4GM-QM)%!<MC[1O$U=K
MI7Z+5-I=!/[])(V>*$<'EQ>Q%R(<@C =^JXM*[M 0'J,S*FA(Q^8N%Q(2A]Y
M7@R2\XL0).]1W=8>!6;2T '>H>\2%HZZ1F^2#3;HL04M\I!$+G2#94P;4E(^
MU)TFLC-79K_* 23S6NXGI01JZ,C1>GI=G1XK[Y19J\H&Z.ALF(*HWGL/0_!%
M\!(DGI/6WG.24YC";.)?*^82>7.Q% ?LK%54F<TDEG5Z/W1ZCHP9YH1+C:O^
M4-CH"\6@W?JYY(JKW]1%:L9/4S;GB*@/8@@D^?-!Z^"!A*FFV7[N6)A\/>_;
M\:]?3K]>7QEGYY]/3XRC*X.P[-N9<?WW\ROC\O3BV^7UN\>+V4VSTEZ@F+U1
MZ:PYX4DEGR5P;3X$UT:WMLH^*<F*SD$#N$>IE!?Z7W_MYL/S,5N%.JCYBZAW
MUX+S#V)+[2%LJ9O/'Q_TQGG[E%<W:HK GOCNL[-\7HSOGN)A,KG9'-_KR<]G
M9W"U98 U./CYX&]6#>@J<B*\[1BT\.^([#=^DLH!.W#Z2?(&Z"CHDDCV1"NQ
M,>)&"M4[,.: 45Y*K_S 0/(9"]*BT8)QPHBTO(NX!Z_2\QC.G&!$$NH0][%^
ML?  834KC3U=;9.N7@IAM59.6,<8/8#WD97R23:1N!J"P3,WYL_%SX4@+#@@
M<Y%&.7O26A]I;8FVYAD0.FUE27$I2FNOE]*T9$^2:7U_))).+#Q+*B=H,)?Z
M'J*1CD2[/85LB4)N7XCPZ6R2)*XBO_]=^ME^,D[_C''ZV=,)9%MZ7V<OG;9)
M>R^%]+J;)+UCG&QZYOIWX<X1G-G86UK;);@7J0W6JRNGOZ\^MN2#)V0(,;<:
MJ+P")1#@F[CVMNM6/OWWW\\_G5]?+> X+ISX7!"95SI'+%E0?<Y:Z@^NI=%9
M"V$=85:HR[6@:: 3 Z"(GKU)V;7NPBU+@CWR%$,LY"YHQM?] $B $ZVC%GXE
MPF$81>-WAX=W=W>54/0K-_[MX5'0'SJW(CP4]HT5'&)AXV&WU:RW#N%FL]YN
M-=J-6@,^-YHMV/W_BOOZ7V9E&(T>]8%3 :5M' N@O@$562CO04)_E%AKC4A5
M*SV0@P"21P96C3J<A1HZSA[UP.*T*DJ$D#D0ETE>?%INJ=3#J82!K)+8*,D\
MA*/X!D!OF$TY:YT$V!;@:!1$6:U5*[4]BRHRB_I!>52U2A]K=?I<.XRLB=V;
MH$0'NJTM0&&?6/XOS']N'^(__\5)U.XDAP7]5\*"_DRNXGH[R8>^^K>"FO[4
MJ\1U:HH9_<,"KA9,C!9]7:]H/&'MI=\/,075;V?/$F!!C2*IO.<>(&;,)AEE
M"5.A(1X::<$A5W-.C"0Y,$W;XZ1/KES>HC>R4]F+FR*+F[>[E>"[BT_^T66Z
MV2&1WCC$C.&.5:N:G44L#^9R1ZJ'"(IRLO.3N=FZY*:?,)LX!H%,J=?&=8":
MO\PP+AE?*T>5!96#Q@.:@?J*:S*2?%"E'W3*1TK:?^M'/FH!9'K EC<I[7]T
MY/DL(DHQ]XV_RPQ\6?Z3<Z)8HTIGZ?>_+X@@M>JZ,62K-F)M+[,++;-_='G2
M)9;0.K1%V ^<,1*:/PB3SB8+\(>3]$Y99C=-Q6FCE$6%!L:AUN?2,KM3+JT:
M?SO+--;1 ?2II6L;GMI3A!CK!MC0:I]L5I_$;==D\7Z1)6C<' )G<6TUHF,6
MS5U:"/FWC]QL6.+5\&.]?DBUEDE+2^#_BWA&\3+CVIK DHT3<>OT4::=>_T*
MZ[S&-Y:#V!K@$5EW-,8J".?>^/2 H#LA/Q5UYIDN&U6"CE9DL4 <I76N8:;.
ME:7=E1A'[$VML1RLD<3[6P'TY.*%>W]4YO"#<X<FZ<,YW*&Y('MH%HX]-)=G
M#VQ%-RM_*X@9O6</A6$//SA_Z.C\ 3U-V)_)78PU= K'&CK+LX:VYF#;@N:0
MF.'%:-U@ME]$.XLGMSL /E-]!F->W!>R9\R/,.;I4HD?BR_7R*JKF3-ZVT+Y
M+GC9BGGST7-Y<VUYJXYS88ICU#V3.>RUME4QAQ^;-U0;]+E^*,+Q&/A$8P&.
M<$TT6&WD<X73T=CU)T)(]G 1PRIPK-4"#"()<53,I\<]K\J=DG$&U&]\]2M&
MO5XOFV:CVFDJEO#%@@7)8$>U4918Z)X=%(4=;-^&2Y,*B,H>(BCC0K4P]Z*%
M XA,75OE.BUE*?IAE'2WILQ^I.4%>- %W%@^389H'*E;B>C7R#U44+1![*.U
M9Q][]C'%/HK$/Q3KR$E+6IA9U/;,XJ4QB]K.%)*_=%ZQ?6:Q5<INXT>SB44X
M\&*@D3:Y*!8@Z3/9%!@[YHT\+AA$(M72>.?G[V+#5=6ZG5NOS@QY>4R96ITO
MH]I^HI^YVBZ,,Z/6VID^3"^:HSC_/WOOWMTHDJ0/?Q6.IV>V:@]V<0=5[_H<
ME^WJ]?ZJRSZV>_:=O^8@D;*80J#A8I?[T[\1F0E"$I*0! A)[.STN&T),C,B
MG[A'_#QI/)%E[LP89^-Y^H&?1!.PE$I@RN_3H3Y?\&O" RQO\%Y24Y*EU:7&
M.Y7Z?27]D);T*18-,<F9BC$)74^0-?;;#A Z0)@!A!/%@\(">EGZ4Y;*U'2X
M/FT]<!T2!^YU*8WB][_9X\FOS\(7V_\A"JS?#=?^67&N;(IY[;^_I[WQ]@#]
M R1+61#^>23]'C8D:0?Y'>0SR#]1FW+I)2K3-F7J$@+L6"8 4F"?-\04N79L
MWZ#U2]NPO<S22V/[L33SV9"F';AWX,[!O4%TK[;3ZVY)I=(G._Q!&!+$@?6C
MQ-UAP0\*ZE,=GB$X:_[_OPG@/#>=K57:_15&6A\OA/_G >P/_GPO6[Z]SB5P
MC;-5Z:B/&<2RSO]?ULF'+K&WW[32#@W:BP;U]U4Y%:!1J/-05CYQE)$ED@%(
M%6C#E8H>TQA7P0T<61"/WH7_O1">@LF/H#3:[ 0UJ=*CL@5V8-.!S1S8G&BF
M9*K 8\= 396G"GP5J#"U)65FA*BKD.'!3CSA]POA?\!^*1^7V D6%A?8FL*W
M#AE:@@P- D.UJD)VE<ND/=]F.0*/)';#Z8#B9[A2D3N7?C!C:/!^G,S64/2-
M;(V"ZW;$G5?FKWCKV@@W?L?E7IO:IE0B@=FUZY4I-2BJ,&!A>;AKMNN#QGH'
MEP]>C-<0&Y)>_.=FPR,Z#E/D-G'84]('>KIVZ!:EK2)UU^8W2H<S.+%US>3J
M(BO<Y$$ A+2]^%VXSLW4<"/!IH_\1Q#^$/+3-H+PQ?;=/T&,8O9MIH=:HB#W
M3%,4@C>?Z;W((KS_YD6I7/D3YPYEV;B5PQ4I?[%5=8TLP6%$-'M[PSG+P@=[
M,J$SPH -L8)=F(D'E7@S NQFWQ#<\9@ ",8$,\%",B"TUS9C]#4SE3ZNEH!M
M:Q)@G7:3 -GJ.@34TV]0;95:4]\^[UG&>FYR#N!(5$)/VH7UCD$,ML-[<B3I
M.FQ&D5QNV%,"6"FK]KFL?; _SC(N3;P9N60H3/TMG,-7MJ#MN+N=W'UD[%VF
M8THY]IZJ;BE[+R;[G(ZC[]1OJZHL45;V,@YHB4K1Z12'@KK;#2IN/P KI?2+
M)RST!JR555WJM(MCYO..T=<R^J*>T3'Z!HOHF6T2S.U)[>^9I1IOT$C=(_%L
MZDZ-,0(P"%Y)^(X,>AN&\+$@B;QWX>K-#C$?'_WXQ(_H4VHMJRBU@1;65)1:
M=ZG,H)YY',44FU!R[TE+JGEAGGCX29:6>6;W-/L48P+"__?E\9MPAT$)F[4)
M0LZC/!P)DR2,$IM5AU'K7I-T/L\I\7AWH//GSP*F^\_$9[[8GHVW[FE$"#9H
M0XUE]A/3N$TZ[GQ,Z.=6?Y#V@N,-0OB=%6[_G;CQ.W[Y=>5WK^UH)'SU AQB
MC"E'.*+X>Q##/F%[:\-+)2*LIZXS;!]]-^M02^L<Z21?/%W_3VDSP#0.++:2
MQX9G^V?@!^-WD)\Q:"CTT@]&9&P+-\& SD[N;D9W,W(WX_KJV\G>C&O;&Z2B
M\9OK_^ACQ]+NGG3WI.">W-Q^/=E[DK:(ZZY)=TW67)-O5U].]II\L_O$ZVY(
M=T-6WI"'Q]N3O2$/(<'LUD[CZB[*NHNB'>\EN<;8@O" 2=IY5]X-NO)HHV[J
M*Y-_92M )S:-1K"T;GJU8OLE$NR0"%ALX*!3^\V-1RZKU<O?08=?+>I"PR\,
M8 .VZT^_,:W E1OT.&^?*&0+KO/?9[;<PVQHN_+05?_R/P4,I:3'PL(#>%9P
MMFXDA#34<%''4?WG?V8O34+?C49-O?@O0JZI+#((<J00A/ S#W,%X;N _6GQ
MEW88VC[[,":#U<LRE5/W+B9C038N<I&BIV0,S\"BG'[M09=JG_P]\,G%CC4!
MU=9)](ZB3H)CC")5B3'I&0$3/MW]]OWJ^8_'VZ>*>2Y]1^4L=Q@//KM\R,7
M4!:&Y-\)KX+GG2S27!2$,EG_X'Q,RS?A3TGHQEC0>?MS,$*,$ZX&M!)+[JF:
MR)^7U<&/[$AP$N]=&-A)!%"=0VE\>Y\($6R0U05B+_\^&=G>,*T$!"8G(?L
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
M>$+2G0&PX!+TH!.0Z!MN'&Z8S1<_^H30:B]"C*E84=D.F$#G_$!,TVM:Q M
MYGW/9G\N_PK1$CA4#-(/+@#&*^K,O@$GA!+1U7@3*B7P[^.T=@!;42WTOQS\
M VGGV%#T2.BZO+0N]7YNQ#_%OBNS;U2G7U4+ZMJI1/Z"U0:<@PYKC7@S8CQ
MYK+7'QH'\&[NX^ >8O?&6T(2L Y )'@)24V'1ZR?&(T3[6CT+<L/6?/Q[&$P
MAW@,+4B;U,2!Y L,2CR!$J_I>"E:0 S@J78 62OS:+&K$<!<"1:N^1YK=53\
MX70,6< '95U,F=UT&-7M($;R5^U(CC!< &1?/BZ@1V!QUQ/3FHZ11$,Q(&?:
M >'N0"4D$A":#H5(-S$.OVG'X<(G ;GQ+A]I+$V&TT_(H:7/R-#[2F>^+.ZG
M<3.-H0,,K( ,,9WRSC!P91YOU]),1W1G*XEA?Z,=]K7&A;,0,T 11A4J74M_
M,,[=0#QT?O$]J]S1B<B-Q4&NH*D1.>V8"XB#U<@!7D#C&#;'6[!9! UCI-%
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
MK!;*&-G-N<@K"<?&NJV#\,%#SK6'@;S=F+9I \,9GR0$&^N2+I9_1*L,1E-
M(+T+ [X:FX\2R?M*JH?:(('::XDF!GJN/8;=C>H]<;V>O6\WTSE?)*0:G'V[
MFLM^S:Z(VNDR2[N)EOHGH=S@)-P%I,74X&JDIVW;1'O&1PGQ!OJC<?M5,IJ>
MOFLWN1D_)'0:Z'?&,*X1F?5=.:'Q_590FO@B(=5 ;S(&DNR=(Z=U:=$*8E?^
M2*A-.HN_[.<\82G_H67'CM6Z;.Q3["&7_73/@<<WUV'M>AC03??KJ)"RF=TZ
MU@)2+Y<#P =YIS! K/ZOC]AL-K:P+$.EG?+E17HWYE/49U KU8+D&Z18B:96
M:J.^T!1[K*JB5_\.61^I-IH%65E"N0#9V\8_*I +DOAH$?8YA54V_Q$^TZH-
M@,1>MVA'DYP#R@UHQ+:V; 6D*H!I[20>6[31R=::V+0OT%:RM')[H/)]:8IV
M379KE,6MN#]0A6UH&GEK>JZ+%C@& +E]_P+,40 \I1#J9UHA2HG;%NT3-(0!
M\P&Z5X#XR)]0I3(2XU9((G.TIMT]-M'BGD! 0_(2O<R+]UHIA]R^%8HHW*UI
M)Y"WC;3LWTAK,XWR_4*I1@5#>\<N5=Y9](F/X$4SN-W+D+"J=1%J^0J\$%[-
MYAY^@3"R&83$F0(*!QZ0-9PW2ZLE$J[/D47MA"H>G$.?T1]LJ6\ZE=>A;(87
MB]H;/??WD ;1V-H]EC19H^D7YZQ$NOR+SCJ9\?8CS.N[R DZA*Q.HBB H\7I
M$PL"AM#!DX5>TF:^F=SM+T/&=+"H674+@\4 ^@TN3,D6V]BO8\ZGFK98V[CV
M'L)Y_'4I5E6J^EKYG/VJ5/!=O2^;X7AP.N!Q >CTVL-/>N/"XAPLB?&( &W#
M\26BO"\3$M@=A;,9("]WXQ%B52+?O,D/>H[#=]'B)8*A<1#<F.KU,S+#^#:X
M]!!_&.=!>[Y[%TPA81\EB!YYWU,#V\K435-<$8P>7H_Z_B-[:3#9.!8L3,LT
M9\*L]3!T?(%II,45#=",5S7)\-^=_X5_JAE/ 6]2\8VKG<VGWVR1HVFVMP"H
M1Y.3S^R[SMSA<U62MT1C058G;YKMJFCT4/MN0/ <DN"%R\MZ W/^3=V>4G&R
MIJDL0Z&'PM/1%)/@'I+9.28$/_$78WL&A:F:)K $A![^WK,/( E9I?+,.ZDZ
MON^%%$WSI@"@A[.S$=#2$HK3,<U/(5M-S?6#16?Z'CQK:91GDC/>]);DKHFJ
M;O(-9]W:>$( 'R_2P)HL9>,$E@/1Q.6A=$!> YV*Q(TS6@F+)E*/4B.5/ <=
M+W0Q3>,4JB!H8NYX" -$HM$1364PGZ)QUN0 -'%V<@T0B<;V[L;7B#>^$3^6
MB 8D6A&FH_"59F&<U340::+YW7*L3L>)LV7I&B>T#(8F%D]OX 1XK'/C0.CJ
MZ6X(TC3.G@J"T?'<6Q PX[OQ'>L\+DZX-S[2JX!@Z1AP)<1&91P0Q&HTIA"/
M$2QC!_R[:UK-<B26BKH.<*/:CL('"O\=\HGI?&C,_ LJ!6"IDA7P&A7P"V5U
M13*@;%X^2?:6BE>*UJATO)'3\UW^'Q]5?01>(V]@"0Q+I:R,VFQUFHSS\DA#
M/+'(?)6J F&IG!4Q&Q53$5 VKFD5+)9*NQYTHPHOXX'&]2SF;*EZ*J"&>R'%
M&&0#'1 %"$L5K(C9>-,G'C"[06/8]]FS/%#?2.-'"<124=? ;538(63510A3
M<Y^-2ZJ 8*F8E1 ;;L>B^9S]9G7&_P+?90 FT>2E!MJR)4 LE70-W(9;/,M8
M> -MGF+>ELJGAFKV5>13/)H13)"UI7HID9J5BX>E"ZN%S$NGAF&KC%51FPUC
MP:?5Q1'?"QD0MX%0EAJ&I9)61JU'4M4J ,6M>P,K(LJSMVG)Q#IH]4BW6HPP
M<J;0#3W(=_J++^D2J$HFS:W"J())#]GKKD58(8L>9.TC?I"3*S86):M+P*:
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
M?0H<L^_/\;%*@9S%:U<@3XBDCW:@40+V]3D^54J0M7CU$N0(D4B@L9]\5J;
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
M=BK2)DCN;%O'T!MP/BF3BM;'4)'-Z8;.\OLLJ=>U/C#ZXHX%MF<KC7JU%=@
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
M;UZ0K;B!-;_0P#G$,,9K<Q Q_A]H!6E9>*G F,9OGS^54'ZJ=FK.[C<U)R5
MM2#@H.B=I:P8D$*9N7E#FD1KVF[KXXV@D+9XGJ56^QAX]I;IJ;,W!)=["DY?
MGR2C9YX%"=8U^2.NR<?N@])5,CK9KRP%8<?A/.X545Z?[FH3V,"RLX8^AEZ+
MO3T-J.N"0I6(^@G.>"CM?.9^$/7+A8LJY10)%21=1\,Y4<&T7O&V)L$/G7Y+
MZ >- F4>_8C6,6SZ3"B]K=WX"$FE<!(8^LKQ4, *C(P%W9^?CU3K?J\>-5K\
M^/!LT@\)U]R6,[S,5T?U"=HGQT >W$,U3RS%&1S5%62.2(M)8+@RL4?'W\:T
M@WP72K:IC3Q..62W%9"O6IFA L.-4F=%?6-7)8V'70BV%WQU7J?^MO@K/H4$
M+K>?@:%%J7?WJDYG^M$+8%]S[Q"S$MCMMNZ*8/=(@-J*[93!%N0#+X3=8P-Y
M*6Q9-XR %5Z!]R)Z$D5XU6D!Y&TQ6-%*@)I+>(%D1KTNDAQH#@"M#=I8,>N&
ML1-)\/WX5<%O0[-.YVJ;.TLA(9'#9?X(SH+A@31, D*.B2VDJ2-4G>(I$<F[
M)*,3'7BVVKI./K(EP1AI1X !N<J"14V?'7391KI=X?$$?IJR8\14&6[0T]#-
M:;N/MX,S-B=+IH% 1*]R_S%::N]]E'!_%WTN5PG;43$>]V=LHMN=9LR_<UR.
M72X9RJVV4W2]YD,$(P*< @.8L6$TM=,U??8KS'RS]<E;>I]DX"!?9\N3(3TH
M$0\K!XZ9O9TFPMG.E!'8R W1^OM-?&,!]^$!=1\F)R>3"?RG=_O3VP03&B?C
MAP'Z[R8G+TXFQ[^;,+">.(KTPLAI&<ZU)?YAA67)K-2.O5+"9X]IFZ9% <.0
MES1ZWC2YCI[YH^#GJ(CK<?D]I/$K+S-QB_9]P;8*JO70,:=QTC8YT1X5 0,\
MCSE3TA:,M"0C=\^DW:Z6CG#QCD@MX!$1(D*<HQ 2?L/$#&2@>.@(L_1/[G"(
MJ*$LUK;ZE53SZ&WP :J>LI$L*+_!>N?55%3B/$AN]."]'TTLURZM@N3+3-R3
MY_/ZKU\=UA)G9MJMLLOFB/6R_)W1.2T*&M]&3^O2&I+UJ[<I=@%2\<=ZO\<U
M;9[.1>L+X%MRK9N[G?C[6+14)MA==;3H&;YLO(^2K*+@%[^.I5I7H.[;D)E]
M@UD\C"7"98I9,^%12*(:6M+PT>]S]J81/J6%F>Z'D<7/V+3M=<0.OX@MV?U]
MP;V>I]SVZWR[?9LQ65/4-DS#'[4!:V@WP"H:ZJYV7@Z$QX\5N9J',3YT5MS:
M7IE@T)./NF(%DC3">Z2[7F,NS5>3_?AVJ^9) RO[N6*J\WE<S9O,0NSHW!RQ
MDQF;O\^2=%7!W@A"D'2%J@=20U\5X;1PE1"E80ZW.:3Q&0<I H,FTER=2QL'
MO>[I/C59+B$^-8O_-]N9I3PW?UF9Y4XQ_!A_ZVDC(^XB4W#BF]2&ETC(%EJN
M #NC="\5K7MNG_D!UJ63A^8'Z",P4GX A:S8&Y*\(>TU/P!2(>W%B:56 >4'
M4%C&,#^ #I=["F>N$RAN5XO>K&72[;$M'?<!SX:28T:B?2GQP- \V&KZ4&.;
M#M\3MOGERWK<O4NBNR15K2@V%-SC62LMSK_48>[=,)"LM9<>PV;=ZP6]WT=)
M5K[CZ4ZOV) ">59)^2 JP9[1.]G;C_X[+%*-)4/A<Y/OM0GX<[C=<:."6:X)
M.TWV,92,K;$[@.RPYCL6WR 0H-W.8=2]\S  3C4PU$CU5832[\MU;#J;%2LV
M1#<3NCHR6MX>G5];)PDROQ40WR3H^?)#7E'RAZ\"@X[6")V4V$;]X2>:I".#
M)JF-X@-T_(A6%M3<4Y?823=< L.17O].?(A99_A]=[J."E[6 )S\\@P>"#]0
MMH!"4:KB47$X,?S<V5N5H9Q.7K'JJ>MU:%.7K3&D+UPVO39:S.WUZBY-9A=I
M'NW.7OUM\#&V/1P=Q-8*JH23#00P2I6[8;0R*X_0]1_I;%4PEI-7=[=)E?:%
MZ'>:8#I>Q@_3[YP0W$Y,7GUY]Q5I6 34]S*MVUVO-+.?-\ F>QH/T;V:\UVZ
MJJ"UM#WZI4\G"6HKP\.H&5PXU4#+2NL,T'G(,^H+3$S9=R<3IH4RIFRG"2ZF
MK)\?+J;L.QZ4]>K$94S9<#FM8\I:XA^6P[W,2MLQ90KXA!%35FI";,Z?EDG!
M/UK'V:CB/Z7>%)[%&#T:;22[C1VJ5IK&JK7D;P>L'6"P]AYZT3K.;4SX#U\@
M;Z.G]7%N&O^T*JM%]TI1T1"S6*IYH[;6T=/&/9]$:]J.5D^\X'@_:YF*A^%E
MK;9@>WTUP)W'+."*^NL7><&&ZVYN0>O/W>0)-Y<3,\QJ4L<,-\DC0UG" )W=
M)U"5(N%BD)C&JYDF(>%>-31[_W2CZ)Y<#*R,U9^@W!*W^QR0ZU_OU)-OEYU?
MP62R^9[UO-VH'<ACI*&-TQCYLKM<577,Z!)\ TO8BT857WW@!6\&?RT; 4@1
M7IJN48QJ.(H<X&CXSH_["4EO1=I_Q>SQ>KA@$,?).=K%#13-<NO&N1S6M4>/
M8=H[,ADT/$<W==_3+0.:M 3<Q3"9RNHJ;*EQHC@/,\V\O6'D 4I6O3A\MMPP
M5,5"R\ WA )FUATHK2OX[<;+B_H8:[Z.YN\1E;2<XRO&8Q6E)(L*N,%Y9,>!
M=;52_F)C;IO#6BD&=D%[-<$,B_V6)S8+,C3^?+2RQ",$&AYX/6+#*,-!7>?)
M0S@KF0QQI"A#OX-#Y2=XOV&]/#B\)>S4M$PIO]K<XA8:Z$Q,T?4N-NP;+^!Z
MNRJ3#-+A@V-7QAT+V>+6?LDP+\P^C!86CB@-,#A]\X)L@I+.UT%)ZRP">48^
MP5&>(;GB+WA"N."BLU$&W$4W'@.><M.Q/=TL:;9\?6C>:H+/1=?EA\%>FUY@
M<.I3M9NQ36);3SYD#'-L5\_Z[ '>9\_X)ER\POX0I2NITX/V.[Q/F:%D&.QL
MZ&^28P:&(6,[=%W,;+K("]IVDZK4R50D&).UQB)+(P5J+A*D-M&X;!^]E9BU
M=HV?3$+SC=<891=<)GWCK[KJASQ;9Z,03P;JBNZ:CYS46]7*A,'9>[9QH"G[
M%<V#J8]HIWUO"5:S+O&"JQOZ2+.5-(!G_6<L5G;YH*XBHQ2*.6>TJJ>9[T*;
M97:UW45!KUE]AP:R_3I?.Q_RE%FGA-N/ZMD\4%#]N<.P02,Y,7AJ\>('NS:W
MWT?+O/P3$4P#0YFMC12!AN:=.4*PSW05)XS&15(L+G<W2=V_8\)\>CFAHID%
M00(4R>59( "1JMH.[)%;=;10OHLDI<5I5-'[O'CNZ>B^5OAPOEZN#@+Z.%W2
M$ ZHZQ5J=X/ZY-8>#09U5#,[L^4%;(&X&TQ?@6]E<SPPU'(X0$@3G;[F0 2+
MX+"BMD07- 9=,E;=EFE9KA90*1%.8MVKO $$QJOK(I,5M>)HRZ!$-5<2UVR]
M5'[!Z*K,P?AK5-AYZ9N."7[EQ7!DQC<OCJ.<!A!^1%6QFE6K(DJEKI>=)BA/
M( D_U/EZ3=.5)P]"2,NALF%U6'"7F6C+E48%'#_/*/0>^N(LAT((LB>3K3;H
MYY$^CBAP"X*A[,&4>G:>.J2F]9L,:!.GI4W\TV[J+,E/#W_4_0]D$8W2-/_,
MO?;F[#R?WY7LBW)&L^ "8E56D&;RD77#\(7NQ[SX^3*[+G+(P2I=Z_I:898[
M!5<, H#L<9(=+P5A1\L>4EC+E6]'A\-:_A2F:J^ .C@-GP;+HFI-@>Q?F^F/
M_>.?'Z(%]V#]*2].V4#*%[3H7035;8<BWT@"5*!733$01!CIV^#"W.2>7#=+
M*&?;)!AOLK%/L[CY<3O[N%E4"Y8JW@'4B5:N A"$$UZ2S5:\I"4[[JY:;G>S
MQNUNQTTOT'SWCFS;=3IU!QG/H5^?*GB6>M:&W=A\Z2[82RN=*Y2;!-3L-[Q+
M:PIY7)=93_GQ#%V[I\)(V"1WN:$IS!M\<'12NY0Z4&*IHOU/W6B% ?/D]8LZ
MFYW(@4,@TB(X9VA'ANHXO#KL?S^!4+4(%WFQ<:?DLC>IT25(-_@0'?QD+!OJ
M;67VKU52)ARJD&('*FZLBF=2:E+;[TD;L]PF0Y7:2T27L6$ZL5QV&/3D6U>Q
M(PB-&R=29;$'26.\WYU*!IQ/N:"\CGX)#$MJS;L>>5KS^ZDP:.GB.YYW[ZB.
MO;?PXKNNLP[$N3^GRVJ!+L17/DS;Z["/86#MH1R4<W+)SNRS!ZA'2Q]IFO/H
M7/6 4'^#GTX-),+-JH(!O[J(-RQ$ ;_ L&5DC>Y,:]I!>UFDI[/9:K'B6_0S
M.D]FB<P5VN!#UXNW7#8G"WF@]V/F5M MZIHN\E7F"5)\EFS#"O=MVAI/?8T=
M%'A2R( [00G*9"E(!P8EM>(]%9UTUO<4N3RG<,^]SA(W+4O*:['(KI[D'^"C
MFG6RX&*<!?4FZV85/:TKA$U.0HORT=NB&P1MU#'^(@H%?_4DU-/02>1@+V]<
M%A&ZC))M\ 0&&;GBO8&"<JN/$8;#]F$Q[,4NTNA^I_.Z?T>%X?1Q0BT[#4$"
M% /I<ZFF6U$X4J-BBJ),3B90LT)5%&6G":XH2C\_3(_^;C+A544FKUP611DN
MIW51E);XA^6*([/2=E$4!7S\)?2X+,O5=L('X>;-_[@NNR"**LBR+PP@Y"3E
MQR#942_+!J5%S"N+",%:=44"03#>QKWY188#)(P20;+:)!=14O D*3P<8EVH
MA.?U/DL>DYBM3HK\Z>/S';T(D"O+H,(%FTSJ<4V8/"<T#6Y(^3*E=>D=IR@+
MH]J()@^#^?>CUQMQF8D!BM[0^9QU$#Q5L[W1(H*RLVQ<L%\6X(P?VH'.VCS6
M!3@&9V'H/QQ<9O&*$4P4 6J=)IC#@8P?!B8;FHY.!A@A+4\&&U:'=2R0F:A]
M+% "QU-ZFPR\/OC(D4R=6TWP:6JZ_%"A2'EV?WS+YCT"E+FK,Z<="!!4:G>S
MRTCL["G);9)"F._E NK6B#2D2O\;Q0?X=+4Z63"0::B3-OG \**W0#>IK%%W
M8-;!VO'X+"F7.=LX7LU[E\)N*]QJ*.6*6Q";0H%Q39=-'<[61I3(^$J(O<H=
MVN(IM>'V^JE&FQ\WX-5=FLR$>WY"RXV#/N.I#/PV^!#M!FPLFYO1]._)?[ET
M^W4J?46+DK[3J1#((+ W0<?!UPY=7GTYV-&-)H_@(_!]D9>:YU3-1ZY\.]0R
M.?'QV+ X(G=TGA>43+>BZ,7FC[S+(1RYEB P0)J92^898M"'PW<H322K/+I^
MMP5F9R+AYB*JV%4\/4)$RUW(FM-A;3,D!FIO,520"?NIHGYE^8&64#$]BYN+
MW-L<?M7.[ 1_XT\Q/*#5J&C@?H7:VR.'4YN&\C@IM!&QW\W#2I7S7[-6[:1I
MO,5:JT &<EB=ZNPMQOU(\1R4WG[JO<G3]"(O0"_+HJ1F5-P%JUM)[2IPO1WS
M6Y+IK$H>P\N>/=!&\HAV^Z[=TR%EO4EG$HHM.NS0C8 \D)C[0XV-#DX..YM:
MGALA0KMFQ9E)?\BQ[FM/$3SW$-/1+J-.2U%E3X)BU1?XF!VM-*AI%FI?$$XT
MM#P*!IIW W3,.L(+CCY!P'B3+4B6V'"G$18M_3PQ /DD:GRM:8:&DGZ-=X&A
M,+/77!BW.4^?4-#+C&U/[Q.8!+E/ONP.7/N=JTP86LE0D13,ZNQD12$HD\WR
M*W6YN/VH8);]PDZ3?>:\T%I#EO+"#&N^W-H@O0@]H^+_+S.^9;IJXLF58\?P
M8P<.;18R8D:1V"Y&G)[CIR2'2IB-H[8N@0T@.UOT^-_9HFY/0ZEY\DJDFQ/U
M-^X'3H]$3MY=1QTHMD*;C8]0'UR-]->/"1F.]A/_S.N5;3QD):-!^YGS6&B)
M7,XCH@/#F*D=M-'0J@[REN%>I$D7,K$=%65 D'OA2YJ[R'2OD@,WRPI:(28K
MTNG=E]]>VP%>D,/?_Z^+?"[U.VZWP.*CAQL&$IP<67)Z#M?>@5(JDVX9BKH/
M\/:HNXM7&08\929?YT)4E;SO-,/G#N_GBW(M$96P.-$CPLD&A@:9UMTTW0IS
MCU:"\8<\767@9\O+/\IK+^ZVPQ==E'!&A4^*:HMKRJ(R9RB[)*WJW?***JN/
M!@E808ME7O '?2CH2$_A^:=X/LWCW2XU_0H/%R.I'(!GB\\1K]-)";@P"FX$
MV 4'*"/C=.%EWF>C5@+^L.IQ:^QMXJ8&\#8_!Y@!HD10#0X:787[2__V6-C/
M9D2XREY09I@H96>^.@'D6YI1^1Y:]Q5ZJV(F%08[->U  &.I>&?S8M$?PQVA
MK]D:F&<937G.?*DW=&\SC$NTBB_J=:VAJTWJZE-:2Q?I'24.RU%:9:NVM[06
M4GX>HPM(R%P]0_6,"MPC_[5*>-)<?4B6P9?H!VESZ="1T>^21P:JV_J5D_"W
MF4!@-< <G0==R]X:/J/>T$>:K2BX=N7W6?(+C2_R8LHC+DNV.TQ7,=S*2NI$
M@61-3:TFLV[/=.R>!V8N'TUC#*8;H<A&*L+$JF-?>8$S+AADV;JK18.?*1<.
MW'SXW,M]$ZE-F;.#L1P^>GA<&Q_6LC=:5[;7S'''O9_#250^P/]@ GZ,4H 7
M$^SC0UY4D)MC\^J@+0(VA!+Z$#-<>EP(#V,@<I>T6(3F?H@P3N?P@^Q;WT6]
M>-E<&I<7S"#<QT5("#XN(D)#[EAB2\5AN2\;J7'/HL+7 >;^&>M5\@BW\3#_
MI\D<?ENNBDA=#3P$+4V]5=#*[M-5TM)@BEIAUFC>C_>Q]&2@&:\&!)S[(VME
MQ87C;!6S6]:\Q.ZL832FJS).NT$5^ZR5#,*+66LHK3NS&6;]5&6C%:ST3")(
M&AJ_??Y4PB:V9[+0Y.T<0 A=QVVP[%A?3DZ>1&OZ@4%VN&$Z)=-PO>HI83J;
M<F#TL),6D_4BS3_KP*K\!)\$72\/SG&RBI*T)/]^X]+OWI74RN1-M>B!#1<3
MU;NYTPT1Y*?BS7990XA=E2"_KR6ZYHV<.RK(I"%;>P@[!#M28J4?GX78^P"[
M0O5.H1X-5GS[]EU'Q57!!U[,'<JN:<$S<LANJ R^=.@!J)/.G5,@XP0./(*7
M<!&$1TN10B8PN%D82.$_:-1_7N!X6Q<9USJ;]C3$@DW.&X.MVZVRZ>283(Y.
MOIX<??.'/_!C&?O7FV^.OGWSBI2\+@B)1,56A[/Q0+W,CISNU=O',)*;:'?4
M:'#G*5=Y=%=GLU1GC.QIB,];+N.-&B2\(O9,$"3IAH?#88"3W*"@MYWX^X"Y
MW 3='.Q*Y(SFWOEQ$:7IVU699+2SQY:UPCMY]G)UX.?)Z9*&<"!@T*C=]?:4
M6WLT&$SCF'5<><I^O"IN\\^[;DJJEG@X2+D[@$1-^X@ ==AF OW@D"&U0!<=
MZ@X8 2%GM6>'J*9VGL5GW3)C\G88="@YHZZ<:L)U13S"2!.@'1 NE+JW4:$W
M^QZSQ8K:>]-5]9 7X&#R*6,6;*7?@Q>#=3F^ZR*9T1M(3RE\W:_FK623=;H^
MV06H)^[CY'\=S4J8,2*HP[-63320P;$G4YJE5QT7<8A"P]^=3-Y\>W(B+S.\
MW0!59+B7%P:*OR/?\1J];[YU6&)XL)2V!8;;PA^6%V*_C;;*"\MA,QRL/T:0
MI+AZOF%6+!YW.["O!0:N$FX8O#8D22%H.H(L0E*\=^ZN3D<DXCZWVT".V7]#
M0K#$9&T(J[ T',/3V:Q8P>WNK#'Y+H9W6V P+.&&\]_A),EC3=,1AA&2XC&\
MJ]-A8%ABLC:&55CR&23*GS2F6?R.,;$-%=5\ZRA@U$Q"E'=U%<Y!<I#RDM!1
MB_X9/FUN<K37<0A32);9A"+</E!(=;U81MDSVT2]C5)P??WX0*G<O]\55<ST
M[% K%#);B?]K00@[KFP%UL!4&+6D(7="'%)R>1RM IX-8KER5(S'*DI)!CN#
M*GFD4,YPEN;EJA!%$_!V/*QS@,/N:J]:KH>E)P?3SW6Z?2;4=9%G[,>9J'HJ
MTJ&+_^K"C:S)X)U+A\F-ND*BG\F&*3AX9'%4Q,&%&@VU3=>[%-&IOG+5B@2.
M9BB5-G>0H58I!S(^"/)O!EEY0:=W3WY7?0=X+4YS'3WS B-97!\Z6B_79^ME
MTK0ZC2TU5^5I!FJ!@>4?7JS/G_76.3AT(JTC*TN#Z>0]9?"N!6W7.A%*R"=*
M8PKNLWMKI75Q$=1.:SQZCGPG&BE=]_O4"FPX#C"+/C^X&2[W68.BOF\84H%B
M^].1ZD_TRH?*,E70991X'F$#53&LY=*C4?"#2VX1PTH4<O3Y=^6NG<WY<[1D
M#,G;.W7L[I/$B7]W'3T@Z!^):('04*:UA-+=6=HIOB-5=MT:9#?YBB\<1J;(
MI'$7D2(XD V+P&!E8 Q%](FR;T9P(/Q(9ZLBJ9[/GV8/W-LE6O3Y#_8VP[@/
MJOBB[M%KNJ0A3(!R(!#1*=YV'=1:?#1_8[;QO(S96IG,$_%DJ4DQ+&N/]SW6
M2.+  YEQ(-LL0DU%K+%%UQ?9I%M&]$B^+:),9-^XH<N\V'U@5C9UX9<LX^_$
M-7E#G CJ <%%9X ^_V1E#_A)UD.9 'DVS6*^7;_.RZJ@55+P&_KZ';N^FI-L
M<&PHH-/UV$N+.H0*=JWJV=L<2<VR))#^CWP)R0.+,DKA$11^\U4@\$28KY/G
M9F!OX]QT)R<G)Q.EGVZ[!=91MX>;"T_=R8E;3]V!8@YTU>72']83O<1(N[ZZ
M,N@@'!U;E>;/\M5=-5^EFSKT?>F&=5^@'"'-I$'=AS<LR#PO2%PS(<6&BRM7
M27>Z.'"=U&I](,Z49D;=<JZTP*N7?<SY?$XA3Q5=7^+?\,HPX':PXJ$C5%2,
MD=W\61# [F+L946=N!INK9MG4H3GCVEOE=V]R< N])O K(EA_DCON1/,]"F1
M!O IOW&6PDPE$>Y*2- C?P>*_P@,;D;J2S.":7O$3PX.=C"Y7"R+_%$X5/7N
MD#6-T;DXE#)@\ .429NTX_<_O.3*Q_2.^($- +7ZG5P<>O0,WR_C2G7X*L+A
MN;S&6^MR#H[&QQBZFCV1VZL<J+K.CACV%CFL(SJR6H?_.AQE4;569O:OS:K,
M_O'/]]%/>7&Z*BNV_RSZ]G:21D/G)35/U.-O33"LW9M:WP8:!D;V5HF%87&G
MS(:9F[G9MRZJK1A+B((3U&F &8O_T.(5FK^OE47ZBJK8=9HW'$+VXH^KY3+E
M^[<HW3@9&Y4!,OK<!1IMY,0 <O+-"X%%GM:97&;SO%CPA3I$1-I8I0^4UMWG
M*7YB72J"K]L2_'6:X2,>^OFBKL 7>5$EOPA?!K<'58RX:G_OELR!@5ZF<S>>
M0H&-?5;76"?6QE;74!$:J;J&@>R8H;+)GGYHU34,#&-87<.T5_U>3L.FI7J&
MY%WL*&IX.=W[C;/+:95$J%<13I=L"(=USK&R@_266MLU?E;Y..;S<Y1>1PF#
M_FFT3-@61+;82UJCUWRU%"@W(4;PF->BXR0#@Y!&\<Z":F!_3Y,2VY,^Y"FS
M5BF K"WX(_T /QWI9,%EQ]E0_WVTS,L_$<$D,"3IK="=B8RZ9.P4SN"E%J7_
M+UF>YG&?E[VBL;-$SKTR./"D7N=R%@P(XT" 12#8,;.#-*.SO#/&=*%F%'M0
MLO5G)Z[2+3YNW*,9P8#ZO4_/7B_H78/Z"0UL[CTTRTJW'3H44,89!8(@RZY)
M5>W$^"FMC/ >?O/Z9/+FC2K+[TX+E/=P/S>4]_";UR)5[AN'WL/#Q;3U'FY+
M?UA/DQ(C;7D/*Z"#@.SKDY/)ZXD*LCLM4)#MYX:"[.L3WNE,)W>0'2ZF+63;
MTA\89/N-M 59!73V6!-A"OF&[X5KW?.F25U5>?HY*N(Z^7LK'?QE5K&^*9.9
MJD;;>/S&J7O@T!*H,REP/N:L25L\TI*/W#V3=KM:1L*%/&I*)+ ?-H(>D;6H
MHJBAR^JV(=A33 H?JZBH9*\N_VU:C&G/,ZG[6 "&W<NUS-B=8U;FP_64ZC?W
MXPT%2R=IPG7AL8WK7S$Q*[I0I%TR)^$L1Z2%O*BG.A[URD;>(H(7!!(G\SDM
M*,-D:"?-(9:19I:T[4HO6#VCS/0%C;>2CJ]%-DHK;T4"B]4A\N*NT1D?QZX7
M8^F@=,L(,5O^$$/L#J_!Z/-9KN&",L-&*:9J@QD)1\4;K.3%.02+RK(UPR-1
MFYS[='*F1SRI2\V7?%ES5J5 "$5C95E=]VKOQ8=P@.DD-2_LT>UE^%Y$2<$W
MD6^?FU2ZSZ=I5*I\6-3?8 >HD42H +F&*N%DP_1@,;+"+M3,.\8/ME9%EE2K
M O!^D3S!3^I82\4':%1I9<% :DV=3W -_= @I35!!T]F_3'\SOY]E&05S2 C
M0I,:YS)[9+-E7CRW<R5<W95,R7(&)ZB>B_U!9#"W_QBY,3AK\>5(R_DY,VE8
M'Y%H*[=&WF+OZ$%A;,WQL7\(&QU&WA%,%[3?--"C9OBXYS[G[ @#6Z/X*OL$
MAYEE2BNX&LOX.W;Y@>X>%RP^Q(QM.]E01P,>CYK4K$B>D=6&&9DUW(X(X^=H
M^+I73GT*^#5HB)^2;,QP6$^G=M9NSSX#1K*GJ^UZ"NQ.0+U-\%?377Z82>5R
ML]"Y&5180943A+&T^[D;[VK<O?N68,&/5\"Z[-TF6N%J+KD;O(4<8[J@50Q%
M],L^7AO417BK%F,KP(7]:U,&+/@;*P<V[+Q;.H*$G]>>I(SN[PM(F )/4'/(
M+9NMJ!'VS;Y%O^_82(AR;=UBQ*N-1FP?3VJ&@0'7RBR=)Q+KGMNCTY9XSF='
M+C:$V%A*'NDUZ[<ZW8&5.Y::TCB.5D;2H\-Z>MQ10LLO@#"/F6>(>>]ZBD?\
M:556/(O9!V:=J'S@#_JW>?/$3]D62*P*[_*2_=Y->/?H;/$1DG[L@LJRL)&1
M5#FDVA62$7947><WS?F_0 $RY\D] .\D#S_JW%</=&,^/4+33SK@.NO7-2V:
M.2F9209F?UMTDE^5!)@AP EM<OXQJY.9*-14 A_RY8>\HF0R"6U#KS1()Y6O
MMD_\Y/;(L_6T(?!?'Q)TJ3RTWZ$S=YA*AO?^$]-J8&@RUK^3C\.J:_SLKBG/
M8O@].W@640HE@>-%DB4@#FR6U.57##]&[Z&M9$1MFP6G(W(O>/&WKVB+&Z%U
ML>C 0&EGI,[FV;XG_629WE2F9D)U0_HEP-1^ALX\;2B7"Q<;QH/C4)N789]*
M*"^HK3792TYJ0VMTLE/;8,W/(5-5J=E1+69WU98%)9<IZZQ%4X)7*]]>3FO*
M>LC[JGC\\2$OJEM:+.!!IS[42>_B>IKB+]OD_'$!B8SN<<4(<Q>8FG)@D% I
MW[TKTUC?XSS55.G6W&#UMG4SBTDD<.&P'H4[>4BT[I]+5(8?(1O.=!4GC ;X
M=]?^(NT>[&N!R8DCX89:U 1)TM ,! $*;=O)<53&':&W3R'G4D$C28:LK3]C
M^KF/#VJ0\QQ8C&!H2:_Z%&WWK]2B(R:VFF;9*DJU=8&WFKE(=-7'UTG"*T$X
MW%K ?8KW9<"26MQO^M=W2495H<X]#9TE>NWP1H>"<H3\'>@23CBTR!BYZM*$
MKOUV]PL2[HN@ XAHY P<6SR= "-4+&QI*L5!U[R8#&G?G$S>?*O,D+;= I<A
MK9<;*MW4FV]$CK%O769(&RRF=8:TEO2'Y3,M,=)VAC0Y=!"0G;PZF4Q>*VN"
M[S9!@5;"#X7:R2M15_NU0]0BY+2%;5O\ X.MQ$I;N%7!)XP\::4FR\[WK"4$
M)ESS#OB1)O</K%.FC[2([NGY$RUF24FOBZ2#IGU(,'HN-??6PEUFZC-5E::I
MJH3H4"%0"']$&O%)+3]I%"!<@T#&XA[[SCJCU4A0#V,F,4_7-<8LXHA[0-D8
M0Y@]!N6YT\P;1^0MO4\R<,PB;Z,T<A.,'7 '[#.9XW_W12C9'[4]<<X;&G1#
MD*NKVZX<,5>DTU6U_V#)?9I+QO<B+Z[S"H(5($-9'1FI2=YA\3'F,&HO(V:M
M67/C.2:6#;]-&HHQ<G.,HR(^_-W.&(=U*K:W>?N\/!#[HR;>:(J#W^9GS/ ]
M ]:>QLCI./HE]I*98UUHOLIYGAA_22R&*^TQG\6N>0YK; _N!<L\%XK1XCF+
MP/E\3B$,B6Y2^C*)MM/Z6J81&$#271Z!X?JX2B2PEJ"=1 "$(-M2! )[ER:4
MYQ% 8L)O'AA)#?L=P$N;.\L/(Y'#2:Z8T&*K=4I+L["HK.\G]"V"+(E7\SJL
MDQW%)(#I:8@.;I/RQH!$4(6Y;$,W-+S(->_$L:G-OL_2YQ<)Y.)S4/I<16BD
MTN<&LF,PN"8?;A#Z<,,8ECXW[54O$*ZOG-B6=3K[URIA(ZI)'ZF.G=!_AP6H
ML62XA7-6T*B$,PPI;2,L]J/1=T*C#'+D4.EM,$JQ?0P[8^/LCC([)/HII<!&
M_32+X?\@_NXQ2D&.*9L-BN*9#7Q5O3:S;]'%$VPD1%W 0!82B+?DZ4CHAE=@
M\+,R2*<R@'6?C5;Q^T>:IG_+\L_91S;Z\XRM-V6YZGB(Z=OCZWYK),& 2C @
MP.'X9V!!&AY$, D$7,;&Z-;_-NF7$4!T6T3PU/3Q>7&7ISV@V?X[!B2]G#"@
MJ D203$@!/1JVNYQN5$1+J),PLDK91'=G18H!]%^;BC_T%>B#.TKET5TAXMI
MZQ[:EOZP+LLE1MKR#E5 )VR7KG5AE2F;3A?BB1T2B\Q8A_R0IXP,E%JYZ;Z7
M^>2\-U<N>^N@5O&:,GE<DPYD&.S!D,[\1@;B;/A*P[.-"&\5_D36L]1TFF#6
M&AD_7%@4HTER3I3,@*JC%0<C+/YYMZO682U%,NNUUR(EMKS6)34J#*>Y"!Y&
MRU6ETD$:H *9:\:DBI[(<NU=].5=F#G947:250,=WM5^$J3,V"RT2F&:.(,)
M9R9>==G/*:W3&D\7>5$EO_#?7Q>07;!ZA@S'%?L;W(<L81:3 -X9>70:%L=Z
M8H;%.UJ6)-H(1.*61(&-"==VZ^1^&0,@7D;.#_0AF:6:2HD[C; H[N>)P6)#
M,3#8]2NZ"QZ%=4=UO3POV8X*(-OD\>W9% \B,[(#IE1N+SZ8:^[K[,[^O#!1
MFGMTQ.S:Z+"V])BNL/3&5(\>OT69Q0%%YWLF;>ZL%+-$#E=.DL"'<$:D=?T0
M"/Q,C2$MQJSJ%2]PVG:E_+A:,L0OVBGQ^F&E_0P++U.Y4,\[P*-\V: M-%"9
MFF 77%9]X\E?5GB.G%'Q_Y<9VX(7*QJWD@Q+@&;T*=Z/UEP^#.!JJJ'F6K<Q
M0]?+UK*?]@<\V""5-W1&DT=%WBVC3T<!GD0^)/ XU5;1ZV+-P*4_FC.%S%S2
M!NL5S/"2V,9H>*G0Z#_3L>PV;JN-T\S&3O8 D".=S$SS&GN35YF[W5+HO2=C
MEE[$2;'A$;Y&&;H=I^9V6K^-4R3_GOR7<]P.$;.B14FE\W6X4#5+&.XK4[CP
MV#OE1<CX<R1_F6^G;MCI/,./\#Z8)C(Y<,04;,1S\Y%(,%*V<X@$@B$[NW1]
M,HT[:S2,G2]H<0\UDHK\<_4 GB%1MEM_2-<:CRJE% [@U- G@@&I.02'(J4=
MNO#1=\=HN+G,V$S/(Z[H651%_9M ;7,\<M1R.(!.BP$!#J1F$1QVU);H@D?1
M)6W=WK&?_OJ;YC?L/W?L_/'7W_Q_4$L#!!0    ( ,T^#UO@R#)D4BL  .$A
M P 5    =&%Y9"TR,#(U,#4S,5]P<F4N>&UL[5U;<]LXEGZ>^17>WH?L5DTZ
M<>[IFIXM^9;UCF.K;"<]NUM;73 )R>BF" U VE;_^@4@4N(% $&*%T#F0W<2
M$9=SO@-\.+@=_/4_GA;!P0,D%.'PYQ>'/[Y^<0!##_LHG/_\ E'\\M.G]Y]?
M'K[XC[_]^:__\O+EP91@/_:@?W"W.H#^')"7%)('Y$'ZHX<7!S%E&0].3[Y,
MKFF,(GA \2QZ! 3^Y6#B/X"0YSS&BV4<07)P'H;X 42L9OH7]@_OQ[^P;\L5
M0?/[Z.#?CO_]X,WKUY]>OGG]YOW!_TZGOWSY\O'BY/KP[/7WR=M?3O_^_1__
M]^/!X^/CCT(,49L0X>5+)FJ PM]_XO^[ Q0>,!U#^O,/]U&T_.G5*Y[GZ8X$
M/V(R?\6J>/LJ3?C#G__T)Y'VIR>*<ND?WZ:I#U_]X^O%C7</%^ E"FG$=1+Y
M*/J)BI\OL">4,JCP0)F"_^MEFNPE_^GEX9N7;P]_?*+^5LP9"C:U1& 58.+#
MC3%><>1>OW][N$W/"ZR'0RE'@L3AY\^?7XFOF<2L,#_:I,Z6_?[5^F,^,=+(
MLL'V;W_^T]J<! ?P&LX.^)_?KL\-%'_%D[Y"/OGU!'OQ H91^N<D]$_#"$6K
M\W"&R4+8ZX<#H<]/T6H)?_Z!HL4R@.EO]P3.?OZ!U>2_3 OGEOA7X[)?;=18
M$DA9*O'S!?LA5RM\BF#H0S^MERO0OJ),ED28 'O9^E\$O.UB\B*K]@M>/4T-
M.@/T3E@IIB_G "R%#*]@$-'T%X&00"?YX==;IM81*_KWR1V-"/"BM/P W,'@
MYQ?J=*_Z%O6&&09RX&[!70 5<A82983,&G="\@(#XJ7EL;\*R[Y0-O\DQ:LE
MX\XP>NG=H\!/<\\(7NA 2VO%2HD93[/*\9*+"8(7![Q5D37]#X?X<0 HO9K=
M1%R7)T2KP"^E']8.\I8C-4)94XOLD17N!"\ "A6&D"2TQ *JEI0UADQ-FZR
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
M9$//C>J8HJRC39Z;[Z.U'%. &"D?@R6*@&H-6Y7:)7,H-;:H6US#"* 0^J>
MA-Q[86-FO(@#?DS[!,Z0AU1<9I#1)5N9X&"1"W=+(* Q657RF22A2V:1Z:EV
MX4Q]A\]KWR&$<VY?:[P'8Z_!*1/*]-P+]Z_*:6JX*NNP*UB-B)I"=S/\L!>U
MI@+5>Q@A#P3=W=K*5V//%:Z\7.-]KO9F*@S9*R*D],7@-X5$!$2HGKPH<PX]
M=#3;ZS'"Q*+)3BF"Q22.[C%!?\#B_623',[;K(R!15.@DIPB2JFQG9+4>V*C
M5'>+YCHUHN 89=D32QG$Q!ED63LW94ND%@*;S%!SZ=TTE$9__1&XWGW8S8_T
M:K;>)&G5=Y44/ZC/*I&G_T.]O-J-(!7NJ2KU (N$#S",E3UX\WG8#EL!;GZU
M+U7(*I^1,J[A9YO%[!D2T<)O<*!V1909G+&$3FF+?,0O!%,Z)7BF7 _/IG &
M_9Q:7:W-]$Q5%#*H>!"#$];) RPN=R2W197\I<OCC#$K5+?(1;R!XJC,%QA"
M @(F[\1?H%"\2\MCMNNM99C9&;.9@F'3_8DEY,*%\[6:%[@49%V7TAG+2-54
M7Z%PB"4O<8CSRB7-K,(CK<[GC'$-(+#H:L8VZLM:5O'"!?M%.7-0)!_6/,;-
MKAB.0ZZZ1;Z[N&^E5$]%COI,#MJJ"@:+//JZQMHK.]4VD6.S@.V ?<; XM$K
M4!@S79,1'8?T",XP@9FCP:=/#"VF+0H!68G@H?SB)(][@85_5LFXW=7HS)C:
M*>Q[<:-OHWG2WXZ8UZ]>4U"E=JQ!2-25&W/G=UL:#00PJIS&Y-,X W]!-86_
M]-JM+I2>T$SW_8\ 19[";O*TSMA/H:K"CH,XOD413U 01\K-<U5J9RVR45=A
MDS<V[.V5#^)UML\GJ<J:/3^); .>56MP><@D[P#'F!.Q;OF5X2K9UXFLV=BO
M>Y(YKZI%ZP\;T=9:;".63IZ0,ARR-H\E-LJU*JDQY!I;9)N"@"=X 5#Q,0U]
M6DMLH6M;N4%2KK!%)LD<IOH*%W>E!]C5Z1PSA411B];@%!?DM";1YW',/!4
M6'0(LW@_3FLC16+'C*-2V:*-=,E90ZUAU.D=LXU&<8OVR=4/4JE<L6U"2PQ2
M[7]E=+-H:''Y=J7N%3.=?JT]A[04[R0R04@TY.78]5V$DY@P]ET_W2@N_)PN
ME@%>0;B^#103[QY0R./YZBQ<NRQG&D%]E&SKIA4:))L&.UHX6\J^V#:'C$7.
MX@[D^^NA.]8I"MY"9((< 9^&0\4FF/B_Q<DC4[=8,4E)=R2@>!\'AE1820!S
M)2"@UY A0U$$DV/=ZQ9\#3T\#T6)RBE>/[6[T-!ZLX1%;K-K.[)FEC3:C!TD
M%+=H*==PF3@)Y?%&Q][:?"[8Q4![_4'00??V^$N-9P%^;/>Q8'D-UNSD;44:
M< -O(X3YOETYRQ#<RJ68$OR F(V.5M\HCY"Y.>H^\2+TL([@4G$4O'Y!EK"!
MQG0%OJZ-E$5;'*X-HLT;9OT33\/L=6P<.7["D:DJ1J1;S+VPT$,!S,E^B]OI
MIIU7NP^MIGO;6+3D<@*9G3P$-!.P7)*!7_SHJ=ODGVO)(F03AWCK:1P31;S:
MJ.KSQ63/SX1EI-0]L.[95T@H'')9?#VGYXM^%1=EY8F?7V-0H=;>59<!F\07
M@$+*H8+TBJG&46$M_W[MZ)[ .V6\@LI\SZ^A&&"Y)\%GN:9<T2M&CVRNO@AU
M[H B\?-L'S+4=@]G:T6C*#U3)\*XLC^/V8](Z6Y49GM^#:4:28N6?YF0_#0-
M/('K/S/:)AL,U7&J3 MX?DVA#KI6!1PHBIT^#L:P@NA!<]C?*.O@-WYJ-GF]
M2678['X:QXI!H:QL^J0Y4@:$T^?9+]/GT-A]DFFIS:<$+@'R]1/.RFS[9?DB
M)KM/)RTUOHCJD3[TI7LCV"CK?C4"&39[,D=4*+O!*_/:0[WV("UA#YN%'"F+
M#MJH'9GD!=A; OSZ;EXN\W[958Y/>S'A!EQ(E"I;>'6V3E,H9MV[AE#"QNKI
M6_(\;?YUVJM9>KG)V+)5Y>R7F2M14T<ELL#FY0=P$]ZJVX\E)>R7G35(J4,5
M.4WN>0^EB5M?S+Q?+4*.3PLAE*SP[<W/S>Q\_&\O3@C5P6LO(B@J%%X'8VWA
MG*BNH+TX)ZI%RJ+C8&R<2V^7\#,S!#)%6*N.5ORH1#0)?7Z]24225QBX1@%6
M,H%!D\Z:NPY>>[(%4%+YG!DNG"/F'FG]ANI\>]D@RNCLR;9 25/A(VWC<QNW
M@U*^O6P'973V9(<@U?0,$X:9!Z$OXOUF]#7Q(.N6LD]MQ!BY/=E*,$=O9R]R
M+]I)';SVXBUUA<+)PXN[3S=T!>W%=$.+E$6A(;*TQZ-;\%?$^:KJ)DR=:K2H
MS&=EOS=HP+GQH1H=BZZC9$:S[?UI(V-69]P+:QK@LR=3 W/ =N;MO6@:=?#:
MB_5$KBW_CZ^./(  BL.2#!_DL4;+/TQ"/_]#)N4Z&$-QC?[TR0MB_OPU^\L]
MFW'#:]8!3F<SJ'0.>A;"+<>B;PNU%BS)V6;=12M]3HVNQ;G/\!$/K6M)]D1B
MZZ,MJ<.W-3C&)0G?UF60H!-$O0#3F,##FWBQ &1U-;M!\Q#-D,?W)-9GUGA0
M(QP@C_D436,%U:^HKY!!]27K_7+=1L);INT1J^3WBJ4,78[^;Y[KP-S(I]#$
M,/.P=&-@H-RE<D- ]//U?FCA37ILE3&@6&O>WE-J@0NTI?=/ %IQQEY?2_P+
M#$)ZB2/6HOE)9PFB$G$5BC4KRRE.: B7#13Q-KW'UOAM,&E9_7?_3.5C9Z_]
MQK@ SKQ/:[,XU77URMO00]^)0$;\@!&-T(*O]::GT*_";_S<,NNG?%[#W\YE
M2K8PL->NL?_>7EO$D1-JB7\44Q1"RA%.,8Q!,"&$K^:)S0USLFA6EE,LTA N
M&^CE_5> 0M8O^99CZKBTZ!/HB^^?./3RC"Q1=U-??@26_Q!"_ROX#9,LX)O=
M+3%A5KT.L7.Q3G''[B#:0",?4C6R&NQ.'_)B^Z<-N1PC7;1#%^:^1*TB]H,&
MK/4</M[<8Q+=0K(XPH3@1^Y][][CI:7VW^&E8HS]O=[>00HA#Z%9N5<@3^Q4
M'U8I;$-O_91<=4["%K704TLE]M]+2R*,/;1F8/%<6!,V[)3C6Y@/SDU+<ZJ/
M-X;,!A+X? -:V?I+RNF_PR<5C]V\YB/>#S",(3]=GBY/_8*B^^.81G@!256_
M-L[N5$<V!\6&GGOX.A.CI(5S/+GB!CBMDZM_[,YU@[JLH:NS8:?)XE2WU2MO
M15<]3/>BII DES[X2YTM]%I5R0-T8)4H8U^N)7X&18%?54=6IW>J%VO4MJ(+
MOU$^H]Y"+]84/D!'UD@S]N6&XE_-Y&\S9W>$CU;;-,F-P<DC('X5 [1=BU.\
MT3K$5K#-V\)+56TX^.4R!^"6LA CI32FE&PKOX8!$.>;:$1+;;SR7/ZNI3I+
M&8T@M((BWEW#"!&8G@MH@2"*)0Y #T411G*HMY_.FC+O=LDQIBEKR60#Z!$,
MX0S5.:?7N#BGZ* Y:%;PP/LS@,AW$,2,S9*H 2 X#YD2L>"M%HBALHH!F*)2
MII$Z:HF_@7,K5:77H,_C% E4J&]%3_^PN?Q\'LXP68B*6NC>\G('Z--R0<:.
M7#M\ ,?P)EZRIL"Y$ 0U^K1Q=J>ZMSDH5O3TCQ=P#H(D!E@[I^@D90[0P\M"
MC+V[WCU<CM]7$/$G))*[)0Q&&)I<OC?+ZU2_-H3#BDYM%H[B$D1B82)Y4 "'
MM/=8'1H1K(WBH9&Y]TFXN(1ARBZJU/T'[BLAJ)!8DG!8SJ@ /!=M3Z*D0^0P
M)8A1&^OWXOVID+*??2%2[QQ1+8FU5%$M^L@89C.-$GBKRMF%+HLS+*)7W"$^
MN8GO*/QGS 0YY1=>^W<UE )8RQY*B4?2,+L"),-O9<8>9GF=H1%#*!SBDV\\
MJG4:@*-_-E%4;RV7*.0=F<1([#QZ"FD+B9SAAJ)R#I% $F"U&!>Z;S*H$,-:
M4JB0>R0'XUT0!8K5DQ2CO,Y0B2$4#C',YE9UYDVU_J<N.B&L91>MU".W- W0
MSOJ7#%D3IJE;DE.\4QLFAUA($UVX=S(RD<5:3C(1?J0F([%ST8937+=X:H.L
MF>5UAGX,H7"(<#91"7NGEW+-UI))6=21.NH%?3:;)"F3.T,0:H4=X@19%,(!
M-H,U0EC+%%JI1]+8,=ZK$8D89W>&5,P!<8AD^"PNN6IQ@6;P/&1Y>>#90=9T
MM8)82S:5DH^$8W;^-0O>,29+3$ $K\@1"'^_>@QAY67Y&@4X0SIU0'&(=I)X
M7&S.AEFJ08ZY:42PEFHT,H\D4R<Z7A'!2G>F.I\SE&( @4-,<G./EDO^F';H
M_R<(?2; 7-SR'V#3J$(0:UFE4O*16PQ#8$MQ-#P 9Y;9&98Q!<,AJLE$L1Q@
MF;9<M[6$(A-VY)!ZX3Y-EVH5R9WA";7"#C&#"%0]##%(JK:6%R2RCK1@.&V9
MQP$O=U7D5M66KRZ',^2@5=LE?N"1\4K1"_OG"KT8]O*&7NZ10PRG)[(0FNMX
MC<Q+9SV,F1P]B&BP>FYI4I(SG-,()H>XZ!(^;G^\B=C<#!!_@$@$>C&LY:(*
MN4<N,HM(D$5Q2G#(_NK![9%EPY,JM8MQAH7J V0#!;W1G/?4?+H5_]^=>G:K
MOG_*V4W>W@^@\FHW#6X;;JN"<RJS#?80VA;221#@1[[#>H;),8$^BBXPI7G)
M%>HU+&Q8(C(UI>PMM+JHV<!+;S<' F^\>^C' ;R:;7YJBWU,*NF?8TRD&IFD
MZ91J ^FWB#\'N-HB6[7=8Y#3/8XPPL,&0G@G-CCY(;[D'K:?/E)S%7[C2TU,
M61$O?OU6'-TJ)C*R26!,&./)$\N*;8MDAA*\?^(:2M.1#!O'C!*PGSXQZ]*K
MV1$* @XK@SK]Z_:C2&OD7^U:JGLDNC..;A/L9+&>]Q#(NG 0,S(Y#V_O(7<_
M%TL0KE@91R#@;N?-/821!<S:4&*7*+6ABL^52\MM;8:"7W> 4T&2;97J#DFV
MAJ.C)+G6^X:)%#/ZGQ+\&_3X:,'^-F?"#LF&AJ(Y07N&NHS\5N"W2MST1&:>
MW3G&JH&,#=3T_BM (>N!G#O3)6C)2I(N55M4U)XH_5-/>[*/5"-WI;30&;E-
M9B4X1SCU\+&!<S[(KFUO-5'>OVV+:':LOW]VV5'@YTHIW5V-;WPIWD6>J8.&
M#?3RB4T+2<R<_R=^J@MF5S?R']KBD[H5]D\@=24<&6/GC<($V L$[O@.&8)F
MR^ U"G"/0>J@8P.3?!87&=B_P9S-W>;K Z(S\6-RN;8M"C&NJ7_N,!9M)(WF
M[]GEL,W"6L479GG=HPI#3&Q@B</7F4LKV=WIQ1*'_" G/XB3)$C&V>1)ZK;8
M8V<)!CB%O:O((]OL[**8@FWNL]0OT3UFV@D_B_GJ=#:#'K_PLOEZ#2(1/23T
MF(\FI.F8L&J(8 UCU9!YI*R=*<L8;7/.:E"DRZ35!$&+6>L$SB __L=^GE *
MQ?9O<5;9'6&9U6X-5YF).]+4SC1E K0Y0]4KS65RJHF;%;QTF!XRF4+"/,(%
M#L7-X@SC2K^WQDR[U3\ -^TF\,A.NSM16WS32_#(8SWM! 5QQ#M?/?^I5FDN
MLU--W*Q@I[<BIL8ZJH&(9+!5YPP@(N(9,ZJ-%R)%>_Y2LWH'8*-F@HXLU%"1
M#:9KQ*MH1IG</1Y1:VX[462^T F?.Z*HM4-_#>NUBR@T@HY$L;.[DD7W&@?!
M&2:/@-1U4\Q*<8]6:N-D*=M(HS%-" 'A7&!PM-HFF8*5@(6KERC\'5+F@O%3
M24]+Z'%O#/.?KN*(\M@]ZP"UIT^0>(@*0+KCKV$TL8(1AU%]Y-A6(\5U;*_J
M -F#"N7@"#"P%:T84#[PUWG. OQ(S\,9)@M146:K-OFZ110$V]SM37M;$6,
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
M,-*+V) )R>)0U\:ZJ="5QM41W!9=>FJU#Z5J?L<!*X:_SM 7A2EJ=J6==6T
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
M7<+;JE:!DSYE4+O<B8I("#G664$CY I%&,HQ=U*=VRE<\EC6EUZ]-P&QMS4
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
M<XG@Z5RB)5]+8G_6-3);_U+O/A"FL![$_K&ZX_!RIC&= 1Y4)ANT*6&)/D3
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
M+:V1O3H]^XP_CB].O^#/CS>_?'K_I_\%4$L#!!0    ( ,T^#UM'F3T+\B
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
M&NLU$#A 82'.:G2\ U3I@V-@Z4(%1" &A!=(M@H8&+JVO!IC:L25LH(S)(]
M!D29Q4Y ..QQ@]8CR#BB!U1_8RFQHK\>/-@TX9712[MF#"(#   1 RAJU+_S
M6K +GJS+&LYJ;MYWG;JB,P&TWNEZD2M4!;V?EV1DY82K6YXWQMM@%-AY0]L!
MC^U; (LW5Y?HLB=[U>JY*9PO.IBL ]+6>>W JQ"DEK^R,Y8$S(7(A<EJ E#G
ME4'-KBH5^0]KD!I-T!+;P&K-QK0(0TX =@:9'="Y*8'+E#+X&#V\DYRU::]E
M&F8.;= DY^\56%?:BG8%G-10T*'E=F OKFYI[,#6SM^G,U5,B7',#7N&79SD
MY_,7(:92^>,AQ0^](LAX2"_2Z'VH9R#ZIS/ATDN[!)TY\:&__9&"I\";6P<W
M(_-+G,DH6E+!'C69D&73IP529(<.#%B\87N4? VDY:%"J*>*/P%=SMSP$6-P
M'&&4L%PVZ$D'9$-U:8BJDV?:C$WLV(>S<2\2<OP4/N (8X6Z$=)N(6_,Q18G
M 3E#$S:M15F.91?]Q:!X /,&A);*&R6&GD9@I9H&4@U81X)>'N7&NM 30[/,
M -06=S!*_H61LJQLQBB"#48:&/,=TVIA[S7P&:R16@ G8F@SY],:ZPBDGF2V
M^R#)T&#" E.BJ?D@ZB0W<\.(P"N8@!I?+N$ GNPJKG>#U#=WA?V\FH_+O#7
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
M7IKK^3.LWS9E9N_:T7"O?H5+7SIDD]S8FE4CVL)MP7%:%/I]<AI#'H""(49
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
M5.MV+.EG/\#R.@OJIKN1SKF&5[NK<$76K)"YZ,WXEXUJ3SN-P5<9;(AV;M+
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
M] O?PPJV@W9OM3K\9![K[WCBK\XN?L$?SU^?_8H_?[C\Z<=G?_DW4$L#!!0
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
M?Z%)<S#\1'S*MWA-]Z[R?U!+ P04    " #-/@];[%/+X8 '   W'   #0
M '1D7V5X,S%Z,BYH=&W=6?MOVS@2_KU_!0\'7!) ?N71=ITT@&(KC;&YQ'#<
M7A>'Q8*6*)M7251%RJ[WK]]O2-E1'GMU'@VVFR"Q10WG/=\,I:.S\;_/CU\=
M_:/18,-"164H(C99,A%->='0HIC+4.AFJ%)6:IE-6=!_[X]T*8U@6L5FP0OA
M,3^:\XQV]E2:ET84;)!E:LZ-5)GV<!$V/=S+EX6<S@S;[NVPW7;[;6.WO7O
M_CL<_N?]^S?G_5'GM/W1W]O_>7@Q^K7)%HM%TZIAI5D5&@VH>A;X?7R,!^/S
MX+@G"B-C&5I11RVW^.JH51&=7/9_P4=_\)%ILTS$NY074YDU$A&;[L&;YNO<
M'"YD9&;=_9]>-]_FYOAHR'@BI]F[_Y4:G)?5OJU89:;;:>>&C64J-+L0"S92
M*<\.'<MN^]"(KZ8ALTB LK%'K.O2:&'K^.CD./@ZDQ-IV%YG6\J=H];)\5%K
M""4?+7CK^%_91.>'*S:/WNCDA] ?$7P %QC5"T;CP>F@YX\'EQ?L\I3US@;!
M*3L=7/@7O8%_CB7<#49WS7V4N.&'T=4'_V+,QI=L].$\8)T]WNCL;_,=DCT^
M"]A5T/LP&HP'P14+/O7._(OW ?-[8[K=^6EOWWLF1?PKYO<OA^.@S^HZ0;IU
MQ%Y[=ZV0/SKQ+X*KQN6G\^"7E2XH@]VZ*D^,W2-R9^"Q(2\3=B9XL?18: MJ
MR<R,F^XS)^9C"ZM>1IVW5$:=)ANP&9\+5HBY% M CYE)S7B6E3S!8JX*PU3&
M3E61LDZ[\3-3,1OS9:(*UA<6U!PN?0?EOI?1NTUVPC5,A5WIDGW.U"(!0 )_
MK>V5T9$"OTP9%D(&EQE\LF1E9HH2B&VX$2GRG+S!68JK0L)?,0^Q5#"5 I>,
M<G1W"#(!KVED"9&D_+. W!I/C;4(RD!D8F$>,H@@E$58IB!#A]#0)$*1+68R
MG#%=TK_K_0M1B(H)&9!*G0@>4==92#.#@3H7H560^.90344P<XYMMFG5W'#(
M?IRX[OV?N H6RPR>HR!<>\I#4$&.VT7MOLQB9+OMA/@>)F4$GHA&S2T>(BF+
M9,ER.)/R@/(C2:X#7?E8WQ*-7(HD,?:(HDQ @.@JA,#U>*M/R/6,Q8E:Z%7H
M"S&5VA0<@C@M.KVAI5>+H%XI<T?;'Z@V]YML?,/@+5W%IP)4RF(58U+!$CEA
MP# Y67?#?7*2"'(+$XCQ))%Z1N1$EJ*"J8KI.I(Z3)0NL8]JNU")\WM>*,Q>
M6-9L&VZ.!.+F?!E\#6<\FPKFHVQ&90(*VR@/ML6.W=HYB-R5NY34 3,7;^+/
MJ+9J:>#"0KIL+"B^(2B&(++S=G* @M#\J0WG10)>G^SL/%N-=C1\](6& /C$
M0MNW ^81ZH:\U)MO(?B;"#B_DN0 59687,J<YG5MRQ14(K-\J)-?%W@=) J1
M<!O-"E&O(^)5 $(W)8H=NFB5R(@;J^A$RTCR0I(!TN&^A:V,.)6:L-@FO[;
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
M2P$"% ,4    " #-/@];Z_I:C_ 1  "SVP  $0              @ $
M=&%Y9"TR,#(U,#4S,2YX<V102P$"% ,4    " #-/@];7+K?V +O  "95@H
M%0              @ $?$@  =&%Y9"TR,#(U,#4S,5\Q,&LN:'1M4$L! A0#
M%     @ S3X/6[H1P1L6#@  .\X  !4              ( !5 $! '1A>60M
M,C R-3 U,S%?8V%L+GAM;%!+ 0(4 Q0    ( ,T^#UO2_.-F@A4  +E< 0 5
M              "  9T/ 0!T87ED+3(P,C4P-3,Q7V1E9BYX;6Q02P$"% ,4
M    " #-/@];!Z ,0[I%   1FP, %0              @ %2)0$ =&%Y9"TR
M,#(U,#4S,5]L86(N>&UL4$L! A0#%     @ S3X/6^#(,F12*P  X2$# !4
M             ( !/VL! '1A>60M,C R-3 U,S%?<')E+GAM;%!+ 0(4 Q0
M   ( ,T^#UM&B$=5T2<  %G$   .              "  <26 0!T9%]E>#$P
M>C$T+FAT;5!+ 0(4 Q0    ( ,T^#UM'F3T+\B   ,NJ   +
M  "  <&^ 0!T9%]E>#$Y+FAT;5!+ 0(4 Q0    ( ,T^#UNB-700IP<  +,<
M   -              "  =S? 0!T9%]E>#,Q>C$N:'1M4$L! A0#%     @
MS3X/6^Q3R^& !P  -QP   T              ( !KN<! '1D7V5X,S%Z,BYH
M=&U02P$"% ,4    " #-/@]; 2=]D90$  #L$   #0              @ %9
F[P$ =&1?97@S,GHQ+FAT;5!+!08     "P + +0"   8] $    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>103
<FILENAME>tayd-20250531_10k_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/2025"
  xmlns:fil="http://taylordevices.com/20250531"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2025"
  xmlns:us-gaap="http://fasb.org/us-gaap/2025"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="tayd-20250531.xsd" xlink:type="simple"/>
    <context id="D240601_250531">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_StClStock-CommonClassA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="D240601_250531_StClStock-SeriesAPrefStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I241130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <instant>2024-11-30</instant>
        </period>
    </context>
    <context id="I240815">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <instant>2024-08-15</instant>
        </period>
    </context>
    <context id="I240531">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I240531_StEqComps-CommonStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I230531_StEqComps-CommonStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_StEqComps-CommonStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="D230601_240531_StEqComps-CommonStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I250531_StEqComps-CommonStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_StEqComps-AddPaidInCap">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I230531_StEqComps-AddPaidInCap">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_StEqComps-AddPaidInCap">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="D230601_240531_StEqComps-AddPaidInCap">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I250531_StEqComps-AddPaidInCap">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_StEqComps-RetainedEarnings">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I230531_StEqComps-RetainedEarnings">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_StEqComps-RetainedEarnings">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="D230601_240531_StEqComps-RetainedEarnings">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I250531_StEqComps-RetainedEarnings">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_StEqComps-TreasuryStockCommon">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I230531_StEqComps-TreasuryStockCommon">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_StEqComps-TreasuryStockCommon">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="D230601_240531_StEqComps-TreasuryStockCommon">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I250531_StEqComps-TreasuryStockCommon">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I230531">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <instant>2023-05-31</instant>
        </period>
    </context>
    <context id="I250531_MajCust-Customers">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fil:CustomersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_MajCust-Customers">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fil:CustomersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_MajCust-CustomersRetention">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fil:CustomersRetentionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_MajCust-CustomersRetention">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fil:CustomersRetentionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_PublicUtilitiesInventory-PublicUtilitiesInventoryRawMaterials">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">us-gaap:PublicUtilitiesInventoryRawMaterialsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_PublicUtilitiesInventory-PublicUtilitiesInventoryRawMaterials">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">us-gaap:PublicUtilitiesInventoryRawMaterialsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_PublicUtilitiesInventory-WorkInProcess">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">fil:WorkInProcessMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_PublicUtilitiesInventory-WorkInProcess">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">fil:WorkInProcessMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_PublicUtilitiesInventory-FinishedGoods">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">fil:FinishedGoodsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_PublicUtilitiesInventory-FinishedGoods">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">fil:FinishedGoodsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_PpeByType-Land">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_PpeByType-Land">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_PpeByType-BuildingImprovements">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_PpeByType-BuildingImprovements">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_PpeByType-MachineryAndEquipment">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_PpeByType-MachineryAndEquipment">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_PpeByType-FurnitureAndFixtures">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_PpeByType-FurnitureAndFixtures">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_PpeByType-Vehicles">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:VehiclesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_PpeByType-Vehicles">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:VehiclesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_PpeByType-LandImprovements">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_PpeByType-LandImprovements">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_FvByLiabClass-CustomerDeposits">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:CustomerDepositsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_FvByLiabClass-CustomerDeposits">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:CustomerDepositsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_FvByLiabClass-PersonnelCosts">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:PersonnelCostsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_FvByLiabClass-PersonnelCosts">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:PersonnelCostsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="I250531_FvByLiabClass-Other">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:OtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_FvByLiabClass-Other">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fil:OtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_StBusnSeg-Structural">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:StructuralMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="D230601_240531_StBusnSeg-Structural">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:StructuralMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="D240601_250531_StBusnSeg-AerospaceDefense">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:AerospaceDefenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="D230601_240531_StBusnSeg-AerospaceDefense">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:AerospaceDefenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="D240601_250531_StBusnSeg-Industrial">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:IndustrialMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="D230601_240531_StBusnSeg-Industrial">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fil:IndustrialMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N90110001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N90110001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N100111001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N100111001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N110112001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N110112001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N120113001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N120113001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N130114001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N130114001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N160117001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N160117001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N190120001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N190120001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N20012100Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N20012100Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N30013100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N30013100Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N30013100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N30013100Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N43014400">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N43014400Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N43014400">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N43014400Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N46014700Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N46014700Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N9014700Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2025-05-31</endDate>
        </period>
    </context>
    <context id="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N9014700Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N90110001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N90110001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N100111001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N100111001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N110112001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N110112001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N120113001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N120113001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N130114001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N130114001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N160117001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N160117001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N190120001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N190120001Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N20012100Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N20012100Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N46014700Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N46014700Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N9014700Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fil:N9014700Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <unit id="UsdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Pure">
        <measure>pure</measure>
    </unit>
    <dei:EntityCentralIndexKey contextRef="D240601_250531" id="fact1">0000096536</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag contextRef="D240601_250531" id="fact2">false</dei:AmendmentFlag>
    <dei:DocumentFiscalYearFocus contextRef="D240601_250531" id="fact3">2025</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus contextRef="D240601_250531" id="fact4">FY</dei:DocumentFiscalPeriodFocus>
    <dei:DocumentType contextRef="D240601_250531" id="ixv-7447">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport contextRef="D240601_250531" id="ixv-7448">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate contextRef="D240601_250531" id="ixv-7449">2025-05-31</dei:DocumentPeriodEndDate>
    <dei:CurrentFiscalYearEndDate contextRef="D240601_250531" id="ixv-7450">--05-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentTransitionReport contextRef="D240601_250531" id="ixv-7451">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="D240601_250531" id="ixv-7452">000-3498</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="D240601_250531" id="ixv-7453">TAYLOR DEVICES, INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="D240601_250531" id="ixv-7454">NY</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="D240601_250531" id="ixv-7455">16-0797789</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="D240601_250531" id="ixv-7456">90 Taylor Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="D240601_250531" id="ixv-7457">North Tonawanda</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="D240601_250531" id="ixv-7458">NY</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="D240601_250531" id="ixv-7459">14120</dei:EntityAddressPostalZipCode>
    <dei:EntityAddressAddressDescription contextRef="D240601_250531" id="ixv-7460">Address of principal executive offices</dei:EntityAddressAddressDescription>
    <dei:PhoneFaxNumberDescription contextRef="D240601_250531" id="ixv-7461">Registrant's telephone number, including area code</dei:PhoneFaxNumberDescription>
    <dei:CityAreaCode contextRef="D240601_250531" id="ixv-7462">716</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="D240601_250531" id="ixv-7463">694-0800</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="D240601_250531_StClStock-CommonClassA"
      id="ixv-7464">Common Stock, $.025 par value per share</dei:Security12bTitle>
    <dei:Security12bTitle
      contextRef="D240601_250531_StClStock-SeriesAPrefStock"
      id="ixv-7465">Preferred Stock Purchase Rights</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="D240601_250531_StClStock-CommonClassA"
      id="ixv-7466">TAYD</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="D240601_250531_StClStock-CommonClassA"
      id="ixv-7467">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer contextRef="D240601_250531" id="ixv-7468">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers contextRef="D240601_250531" id="ixv-7469">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus contextRef="D240601_250531" id="ixv-7470">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="D240601_250531" id="ixv-7471">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="D240601_250531" id="ixv-7472">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="D240601_250531" id="ixv-7473">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="D240601_250531" id="ixv-7474">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag contextRef="D240601_250531" id="ixv-7475">false</dei:IcfrAuditorAttestationFlag>
    <dei:DocumentFinStmtErrorCorrectionFlag contextRef="D240601_250531" id="ixv-7476">false</dei:DocumentFinStmtErrorCorrectionFlag>
    <dei:EntityShellCompany contextRef="D240601_250531" id="ixv-7477">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="I241130"
      decimals="INF"
      id="ixv-7478"
      unitRef="USD">150789000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="I240815"
      decimals="INF"
      id="ixv-7479"
      unitRef="Shares">3147193</dei:EntityCommonStockSharesOutstanding>
    <dei:AuditorName contextRef="D240601_250531" id="ixv-7480">Lumsden &amp;amp; McCormick, LLP</dei:AuditorName>
    <dei:AuditorFirmId contextRef="D240601_250531" id="ixv-7481">130</dei:AuditorFirmId>
    <dei:AuditorLocation contextRef="D240601_250531" id="ixv-7482">Buffalo, New York</dei:AuditorLocation>
    <dei:AuditorName contextRef="D240601_250531" id="ixv-7483">Lumsden &amp;amp; McCormick, LLP</dei:AuditorName>
    <dei:AuditorFirmId contextRef="D240601_250531" id="ixv-7484">130</dei:AuditorFirmId>
    <dei:AuditorLocation contextRef="D240601_250531" id="ixv-7485">Buffalo, New York</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="I250531"
      decimals="INF"
      id="ixv-7486"
      unitRef="USD">1190656</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="I240531"
      decimals="INF"
      id="ixv-7487"
      unitRef="USD">2831471</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:ShortTermInvestments
      contextRef="I250531"
      decimals="INF"
      id="ixv-7488"
      unitRef="USD">34799367</us-gaap:ShortTermInvestments>
    <us-gaap:ShortTermInvestments
      contextRef="I240531"
      decimals="INF"
      id="ixv-7489"
      unitRef="USD">28131279</us-gaap:ShortTermInvestments>
    <us-gaap:AccountsAndOtherReceivablesNetCurrent
      contextRef="I250531"
      decimals="INF"
      id="fact5"
      unitRef="USD">5599785</us-gaap:AccountsAndOtherReceivablesNetCurrent>
    <us-gaap:AccountsAndOtherReceivablesNetCurrent
      contextRef="I240531"
      decimals="INF"
      id="fact6"
      unitRef="USD">5212408</us-gaap:AccountsAndOtherReceivablesNetCurrent>
    <us-gaap:InventoryPartsAndComponentsNetOfReserves
      contextRef="I250531"
      decimals="INF"
      id="fact7"
      unitRef="USD">8113321</us-gaap:InventoryPartsAndComponentsNetOfReserves>
    <us-gaap:InventoryPartsAndComponentsNetOfReserves
      contextRef="I240531"
      decimals="INF"
      id="fact8"
      unitRef="USD">7512052</us-gaap:InventoryPartsAndComponentsNetOfReserves>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="I250531"
      decimals="INF"
      id="ixv-7496"
      unitRef="USD">1124878</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="I240531"
      decimals="INF"
      id="ixv-7497"
      unitRef="USD">725506</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="I250531"
      decimals="INF"
      id="ixv-7498"
      unitRef="USD">94333</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="I240531"
      decimals="128"
      id="ixv-7499"
      unitRef="USD">0</us-gaap:OtherAssetsCurrent>
    <us-gaap:CostsInExcessOfBillingsOnUncompletedContractsOrPrograms
      contextRef="I250531"
      decimals="INF"
      id="fact9"
      unitRef="USD">5360499</us-gaap:CostsInExcessOfBillingsOnUncompletedContractsOrPrograms>
    <us-gaap:CostsInExcessOfBillingsOnUncompletedContractsOrPrograms
      contextRef="I240531"
      decimals="INF"
      id="fact10"
      unitRef="USD">4356565</us-gaap:CostsInExcessOfBillingsOnUncompletedContractsOrPrograms>
    <us-gaap:AssetsCurrent
      contextRef="I250531"
      decimals="INF"
      id="ixv-7503"
      unitRef="USD">56282839</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="I240531"
      decimals="INF"
      id="ixv-7504"
      unitRef="USD">48769281</us-gaap:AssetsCurrent>
    <us-gaap:OtherInventoryNoncurrent
      contextRef="I250531"
      decimals="INF"
      id="fact11"
      unitRef="USD">1107875</us-gaap:OtherInventoryNoncurrent>
    <us-gaap:OtherInventoryNoncurrent
      contextRef="I240531"
      decimals="INF"
      id="fact12"
      unitRef="USD">1579829</us-gaap:OtherInventoryNoncurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="I250531"
      decimals="INF"
      id="fact13"
      unitRef="USD">12074172</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="I240531"
      decimals="INF"
      id="fact14"
      unitRef="USD">11180933</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="I250531"
      decimals="INF"
      id="ixv-7511"
      unitRef="USD">270370</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="I240531"
      decimals="INF"
      id="ixv-7512"
      unitRef="USD">292593</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:OtherAssetsMiscellaneousNoncurrent
      contextRef="I250531"
      decimals="INF"
      id="ixv-7513"
      unitRef="USD">219444</us-gaap:OtherAssetsMiscellaneousNoncurrent>
    <us-gaap:OtherAssetsMiscellaneousNoncurrent
      contextRef="I240531"
      decimals="INF"
      id="ixv-7514"
      unitRef="USD">214824</us-gaap:OtherAssetsMiscellaneousNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="I250531"
      decimals="INF"
      id="ixv-7515"
      unitRef="USD">65420</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="I240531"
      decimals="INF"
      id="ixv-7516"
      unitRef="USD">27343</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="I250531"
      decimals="INF"
      id="fact15"
      unitRef="USD">1598000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="I240531"
      decimals="INF"
      id="fact16"
      unitRef="USD">1012615</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:Assets
      contextRef="I250531"
      decimals="INF"
      id="ixv-7520"
      unitRef="USD">71618120</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="I240531"
      decimals="INF"
      id="ixv-7521"
      unitRef="USD">63077418</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="I250531"
      decimals="INF"
      id="ixv-7522"
      unitRef="USD">1119240</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="I240531"
      decimals="INF"
      id="ixv-7523"
      unitRef="USD">1438847</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I250531"
      decimals="INF"
      id="fact17"
      unitRef="USD">4072436</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I240531"
      decimals="INF"
      id="fact18"
      unitRef="USD">4664463</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:BillingsInExcessOfCostCurrent
      contextRef="I250531"
      decimals="INF"
      id="fact19"
      unitRef="USD">4382067</us-gaap:BillingsInExcessOfCostCurrent>
    <us-gaap:BillingsInExcessOfCostCurrent
      contextRef="I240531"
      decimals="INF"
      id="fact20"
      unitRef="USD">5601274</us-gaap:BillingsInExcessOfCostCurrent>
    <us-gaap:AccruedIncomeTaxes
      contextRef="I250531"
      decimals="128"
      id="ixv-7530"
      unitRef="USD">0</us-gaap:AccruedIncomeTaxes>
    <us-gaap:AccruedIncomeTaxes
      contextRef="I240531"
      decimals="INF"
      id="ixv-7531"
      unitRef="USD">126148</us-gaap:AccruedIncomeTaxes>
    <us-gaap:LiabilitiesCurrent
      contextRef="I250531"
      decimals="INF"
      id="ixv-7532"
      unitRef="USD">9573743</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="I240531"
      decimals="INF"
      id="ixv-7533"
      unitRef="USD">11830732</us-gaap:LiabilitiesCurrent>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="I250531"
      decimals="INF"
      id="ixv-7534"
      unitRef="UsdPerShare">0.025</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="I240531"
      decimals="INF"
      id="ixv-7535"
      unitRef="UsdPerShare">0.025</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="I250531"
      decimals="INF"
      id="ixv-7536"
      unitRef="Shares">8000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="I240531"
      decimals="INF"
      id="ixv-7537"
      unitRef="Shares">8000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="I250531"
      decimals="INF"
      id="ixv-7538"
      unitRef="Shares">4196470</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="I250531"
      decimals="INF"
      id="ixv-7539"
      unitRef="Shares">4196470</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="I240531"
      decimals="INF"
      id="ixv-7540"
      unitRef="Shares">4165315</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="I240531"
      decimals="INF"
      id="ixv-7541"
      unitRef="Shares">4165315</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="I250531"
      decimals="INF"
      id="ixv-7542"
      unitRef="USD">104835</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="I240531"
      decimals="INF"
      id="ixv-7543"
      unitRef="USD">104056</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="I250531"
      decimals="INF"
      id="ixv-7544"
      unitRef="USD">14544580</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="I240531"
      decimals="INF"
      id="ixv-7545"
      unitRef="USD">12959531</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="I250531"
      decimals="INF"
      id="ixv-7546"
      unitRef="USD">60540154</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="I240531"
      decimals="INF"
      id="ixv-7547"
      unitRef="USD">51127018</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:TreasuryStockCommonShares
      contextRef="I250531"
      decimals="INF"
      id="ixv-7548"
      unitRef="Shares">1051688</us-gaap:TreasuryStockCommonShares>
    <us-gaap:TreasuryStockCommonShares
      contextRef="I240531"
      decimals="INF"
      id="ixv-7549"
      unitRef="Shares">1046742</us-gaap:TreasuryStockCommonShares>
    <us-gaap:TreasuryStockValue
      contextRef="I250531"
      decimals="INF"
      id="ixv-7550"
      unitRef="USD">13145192</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="I240531"
      decimals="INF"
      id="ixv-7551"
      unitRef="USD">12943919</us-gaap:TreasuryStockValue>
    <us-gaap:StockholdersEquity
      contextRef="I250531"
      decimals="INF"
      id="ixv-7552"
      unitRef="USD">62044377</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I240531"
      decimals="INF"
      id="ixv-7553"
      unitRef="USD">51246686</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="I250531"
      decimals="INF"
      id="ixv-7554"
      unitRef="USD">71618120</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="I240531"
      decimals="INF"
      id="ixv-7555"
      unitRef="USD">63077418</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:Revenues
      contextRef="D240601_250531"
      decimals="INF"
      id="fact21"
      unitRef="USD">46292725</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="D230601_240531"
      decimals="INF"
      id="fact22"
      unitRef="USD">44582807</us-gaap:Revenues>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7559"
      unitRef="USD">24814581</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7560"
      unitRef="USD">23743554</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7561"
      unitRef="USD">21478144</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7562"
      unitRef="USD">20839253</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7563"
      unitRef="USD">444000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7564"
      unitRef="USD">388476</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7565"
      unitRef="USD">11406817</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7566"
      unitRef="USD">10971358</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:OperatingIncomeLoss
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7567"
      unitRef="USD">9627327</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7568"
      unitRef="USD">9479419</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeInterest
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7569"
      unitRef="USD">1402440</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7570"
      unitRef="USD">1426584</us-gaap:InvestmentIncomeInterest>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7571"
      unitRef="USD">3369</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7572"
      unitRef="USD">14759</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7573"
      unitRef="USD">1405809</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7574"
      unitRef="USD">1441343</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7575"
      unitRef="USD">11033136</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7576"
      unitRef="USD">10920762</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="D240601_250531"
      decimals="INF"
      id="fact23"
      unitRef="USD">1620000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="D230601_240531"
      decimals="INF"
      id="fact24"
      unitRef="USD">1922000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7580"
      unitRef="USD">9413136</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7581"
      unitRef="USD">8998762</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="D240601_250531"
      decimals="INF"
      id="fact25"
      unitRef="UsdPerShare">3.01</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="D230601_240531"
      decimals="INF"
      id="fact26"
      unitRef="UsdPerShare">2.68</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="D240601_250531"
      decimals="INF"
      id="fact27"
      unitRef="UsdPerShare">2.87</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="D230601_240531"
      decimals="INF"
      id="fact28"
      unitRef="UsdPerShare">2.58</us-gaap:EarningsPerShareDiluted>
    <us-gaap:StockholdersEquity
      contextRef="I240531_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-7588"
      unitRef="USD">104056</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I230531_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-7589"
      unitRef="USD">102127</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="D240601_250531_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-7590"
      unitRef="USD">4</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="D230601_240531_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-7591"
      unitRef="USD">10</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan
      contextRef="D240601_250531_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-7592"
      unitRef="USD">775</us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan
      contextRef="D230601_240531_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-7593"
      unitRef="USD">1919</us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan>
    <us-gaap:StockholdersEquity
      contextRef="I250531_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-7594"
      unitRef="USD">104835</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I240531_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-7595"
      unitRef="USD">104056</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I240531_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-7596"
      unitRef="USD">12959531</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I230531_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-7597"
      unitRef="USD">10947089</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="D240601_250531_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-7598"
      unitRef="USD">6432</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="D230601_240531_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-7599"
      unitRef="USD">9904</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan
      contextRef="D240601_250531_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-7600"
      unitRef="USD">356108</us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan
      contextRef="D230601_240531_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-7601"
      unitRef="USD">955286</us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition
      contextRef="D240601_250531_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-7602"
      unitRef="USD">1222509</us-gaap:AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition
      contextRef="D230601_240531_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-7603"
      unitRef="USD">1047252</us-gaap:AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition>
    <us-gaap:StockholdersEquity
      contextRef="I250531_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-7604"
      unitRef="USD">14544580</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I240531_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-7605"
      unitRef="USD">12959531</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I240531_StEqComps-RetainedEarnings"
      decimals="INF"
      id="ixv-7606"
      unitRef="USD">51127018</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I230531_StEqComps-RetainedEarnings"
      decimals="INF"
      id="ixv-7607"
      unitRef="USD">42128256</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="D240601_250531_StEqComps-RetainedEarnings"
      decimals="INF"
      id="ixv-7608"
      unitRef="USD">9413136</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="D230601_240531_StEqComps-RetainedEarnings"
      decimals="INF"
      id="ixv-7609"
      unitRef="USD">8998762</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="I250531_StEqComps-RetainedEarnings"
      decimals="INF"
      id="ixv-7610"
      unitRef="USD">60540154</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I240531_StEqComps-RetainedEarnings"
      decimals="INF"
      id="ixv-7611"
      unitRef="USD">51127018</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I240531_StEqComps-TreasuryStockCommon"
      decimals="INF"
      id="ixv-7612"
      unitRef="USD">-12943919</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I230531_StEqComps-TreasuryStockCommon"
      decimals="INF"
      id="ixv-7613"
      unitRef="USD">-3084742</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan
      contextRef="D240601_250531_StEqComps-TreasuryStockCommon"
      decimals="INF"
      id="ixv-7614"
      unitRef="USD">-201273</us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan
      contextRef="D230601_240531_StEqComps-TreasuryStockCommon"
      decimals="INF"
      id="ixv-7615"
      unitRef="USD">-715599</us-gaap:StockIssuedDuringPeriodValueEmployeeBenefitPlan>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="D240601_250531_StEqComps-TreasuryStockCommon"
      decimals="128"
      id="ixv-7616"
      unitRef="USD">0</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="D230601_240531_StEqComps-TreasuryStockCommon"
      decimals="INF"
      id="ixv-7617"
      unitRef="USD">-9143578</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockholdersEquity
      contextRef="I250531_StEqComps-TreasuryStockCommon"
      decimals="INF"
      id="ixv-7618"
      unitRef="USD">-13145192</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I240531_StEqComps-TreasuryStockCommon"
      decimals="INF"
      id="ixv-7619"
      unitRef="USD">-12943919</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I250531"
      decimals="INF"
      id="ixv-7620"
      unitRef="USD">62044377</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I240531"
      decimals="INF"
      id="ixv-7621"
      unitRef="USD">51246686</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7622"
      unitRef="USD">9413136</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7623"
      unitRef="USD">8998762</us-gaap:NetIncomeLoss>
    <us-gaap:Depreciation
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7624"
      unitRef="USD">1708849</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7625"
      unitRef="USD">1690239</us-gaap:Depreciation>
    <us-gaap:AcquisitionCosts
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7626"
      unitRef="USD">22223</us-gaap:AcquisitionCosts>
    <us-gaap:AcquisitionCosts
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7627"
      unitRef="USD">7407</us-gaap:AcquisitionCosts>
    <us-gaap:StockOptionPlanExpense
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7628"
      unitRef="USD">1222509</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7629"
      unitRef="USD">1047252</us-gaap:StockOptionPlanExpense>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7630"
      unitRef="USD">-535000</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="D230601_240531"
      decimals="128"
      id="ixv-7631"
      unitRef="USD">0</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:GainLossOnCondemnation
      contextRef="D240601_250531"
      decimals="128"
      id="ixv-7632"
      unitRef="USD">0</us-gaap:GainLossOnCondemnation>
    <us-gaap:GainLossOnCondemnation
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7633"
      unitRef="USD">-385744</us-gaap:GainLossOnCondemnation>
    <us-gaap:DeferredIncomeTaxesAndTaxCredits
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7634"
      unitRef="USD">-585385</us-gaap:DeferredIncomeTaxesAndTaxCredits>
    <us-gaap:DeferredIncomeTaxesAndTaxCredits
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7635"
      unitRef="USD">-444000</us-gaap:DeferredIncomeTaxesAndTaxCredits>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7636"
      unitRef="USD">922377</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7637"
      unitRef="USD">-341096</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7638"
      unitRef="USD">129315</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7639"
      unitRef="USD">2533181</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7640"
      unitRef="USD">399372</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7641"
      unitRef="USD">285899</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInOtherCurrentAssets
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7642"
      unitRef="USD">94333</us-gaap:IncreaseDecreaseInOtherCurrentAssets>
    <us-gaap:IncreaseDecreaseInOtherCurrentAssets
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7643"
      unitRef="USD">-228947</us-gaap:IncreaseDecreaseInOtherCurrentAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7644"
      unitRef="USD">-1003934</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7645"
      unitRef="USD">-232383</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInAccountsPayableTrade
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7646"
      unitRef="USD">-319607</us-gaap:IncreaseDecreaseInAccountsPayableTrade>
    <us-gaap:IncreaseDecreaseInAccountsPayableTrade
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7647"
      unitRef="USD">-278810</us-gaap:IncreaseDecreaseInAccountsPayableTrade>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7648"
      unitRef="USD">-592027</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7649"
      unitRef="USD">586141</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInBillingInExcessOfCostOfEarnings
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7650"
      unitRef="USD">-1219207</us-gaap:IncreaseDecreaseInBillingInExcessOfCostOfEarnings>
    <us-gaap:IncreaseDecreaseInBillingInExcessOfCostOfEarnings
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7651"
      unitRef="USD">3608804</us-gaap:IncreaseDecreaseInBillingInExcessOfCostOfEarnings>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7652"
      unitRef="USD">-126148</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7653"
      unitRef="USD">126148</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7654"
      unitRef="USD">38077</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7655"
      unitRef="USD">27343</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7656"
      unitRef="USD">7471935</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7657"
      unitRef="USD">13218924</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7658"
      unitRef="USD">2602088</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7659"
      unitRef="USD">1149388</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="D240601_250531"
      decimals="128"
      id="ixv-7660"
      unitRef="USD">0</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7661"
      unitRef="USD">300000</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquireOtherInvestments
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7662"
      unitRef="USD">6668088</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:PaymentsToAcquireOtherInvestments
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7663"
      unitRef="USD">3616522</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:PaymentsForProceedsFromOtherInvestingActivities
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7664"
      unitRef="USD">4620</us-gaap:PaymentsForProceedsFromOtherInvestingActivities>
    <us-gaap:PaymentsForProceedsFromOtherInvestingActivities
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7665"
      unitRef="USD">4704</us-gaap:PaymentsForProceedsFromOtherInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7666"
      unitRef="USD">-9274796</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7667"
      unitRef="USD">-5070614</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7668"
      unitRef="USD">363319</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7669"
      unitRef="USD">967119</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7670"
      unitRef="USD">201273</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7671"
      unitRef="USD">9859177</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7672"
      unitRef="USD">162046</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7673"
      unitRef="USD">-8892058</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7674"
      unitRef="USD">-1640815</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7675"
      unitRef="USD">-743748</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="I240531"
      decimals="INF"
      id="ixv-7676"
      unitRef="USD">2831471</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="I230531"
      decimals="INF"
      id="ixv-7677"
      unitRef="USD">3575219</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="I250531"
      decimals="INF"
      id="ixv-7678"
      unitRef="USD">1190656</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="I240531"
      decimals="INF"
      id="ixv-7679"
      unitRef="USD">2831471</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:SignificantAccountingPoliciesTextBlock contextRef="D240601_250531" id="ixv-4674">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;1. &#160;Summary of Significant Accounting Policies:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Nature of Operations:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. &#160;These similar products are included in one of nine categories; namely, Seismic Dampers, Fluidicshoks&#xae;, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs, Custom Shock and Vibration Isolators, and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. &#160;The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The chief operating decision maker is the Chief Executive Officer who assesses performance for the business (and lone segment) and decides how to allocate resources based on net income as reported in a format consistent with the consolidated statements of income included in these consolidated financial statements. The measure of segment assets is as reported on the consolidated balance sheets in these consolidated financial statements.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;79% of the Company's 2025 revenue was generated from sales to customers in the United States and 15% was from sales to customers in Asia. &#160;Remaining sales were to customers in other countries in North America, Europe, Australia, and South America.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;86% of the Company's 2024 revenue was generated from sales to customers in the United States and 4% was from sales to customers in Asia. &#160;Remaining sales were to customers in other countries in North America, Europe, Australia, and South America.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Principles of Consolidation:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). &#160;All inter-company transactions and balances have been eliminated in consolidation.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Subsequent Events:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;span style="color:#000000"&gt;The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.&lt;/span&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Use of Estimates:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. &#160;Actual results could differ from those estimates.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Cash and Cash Equivalents:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;b&gt;Short-Term Investments:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2025 and May 31, 2024 include money market funds, U.S. treasury securities and corporate bonds stated at fair value, which approximates cost. &#160;Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes.&#160;Realized gains and losses on the sale of investments are determined using the specific identification method.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The short-term investments are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;b&gt;Accounts and Other Receivables:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. &#160;Management provides for estimated credit losses through a charge to expense and a credit to a valuation allowance based on its assessment of the current status of individual accounts. &#160;Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Inventory:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Property and Equipment:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;span style="color:#000000"&gt;Property and equipment is stated at cost net of accumulated depreciation. &#160;Depreciation is provided primarily using the straight-line method for financial reporting purposes and accelerated methods for income tax reporting purposes. &#160;Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.&lt;/span&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Cash Value of Life Insurance:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Cash value of life insurance is stated at the surrender value of the contracts.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Revenue Recognition:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify"&gt;Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify"&gt;A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract&#x2019;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of the Company&#x2019;s contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations. &#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify"&gt;For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying the Company&#x2019;s performance obligations. &#160;Incurred costs represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. &#160;Contract costs include labor, material and overhead. &#160;Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. &#160;Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. &#160;In the year ended May 31, 2025, 68% of revenue was recorded for contracts in which revenue was recognized over time while 32% was recognized at a point in time. &#160;In the year ended May 31, 2024, 59% of revenue was recorded for contracts in which revenue was recognized over time while 41% was recognized at a point in time. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify"&gt;Progress payments are typically negotiated for longer term projects. &#160;Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). &#160;For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. &#160;The asset, &#x201c;costs and estimated earnings in excess of billings,&#x201d; represents revenues recognized in excess of amounts billed. &#160;The liability, &#x201c;billings in excess of costs and estimated earnings,&#x201d; represents billings in excess of revenues recognized.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;If applicable, the Company recognizes an asset for the incremental material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. &#160;As of May 31, 2025 and 2024, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. &#160;These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Shipping and Handling Costs:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $239,182 and $190,939 for the years ended May 31, 2025 and 2024. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;b&gt;Income Taxes:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. &#160;Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. &#160;Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. &#160;The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2025 and 2024. &#160;The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2025 and 2024. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;span style="color:#000000"&gt;The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2022.&lt;/span&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Sales Taxes:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;span style="color:#000000"&gt;Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. &#160;The Company collects these taxes from customers and remits the entire amount as required by the applicable law. &#160;The Company excludes from revenues and expenses the tax collected and remitted.&lt;/span&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Stock-Based Compensation:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2025 and 2024 was $1,222,509 and $1,047,252.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;New Accounting Standards:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Any recently issued Accounting Standards Codification (ASC) guidance has either been implemented or is not significant to the Company.&lt;/p&gt;
</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:NatureOfOperations contextRef="D240601_250531" id="ixv-4678">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Nature of Operations:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. &#160;These similar products are included in one of nine categories; namely, Seismic Dampers, Fluidicshoks&#xae;, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs, Custom Shock and Vibration Isolators, and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. &#160;The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The chief operating decision maker is the Chief Executive Officer who assesses performance for the business (and lone segment) and decides how to allocate resources based on net income as reported in a format consistent with the consolidated statements of income included in these consolidated financial statements. The measure of segment assets is as reported on the consolidated balance sheets in these consolidated financial statements.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;79% of the Company's 2025 revenue was generated from sales to customers in the United States and 15% was from sales to customers in Asia. &#160;Remaining sales were to customers in other countries in North America, Europe, Australia, and South America.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;86% of the Company's 2024 revenue was generated from sales to customers in the United States and 4% was from sales to customers in Asia. &#160;Remaining sales were to customers in other countries in North America, Europe, Australia, and South America.&lt;/p&gt;
</us-gaap:NatureOfOperations>
    <us-gaap:ConsolidationPolicyTextBlock contextRef="D240601_250531" id="ixv-4690">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Principles of Consolidation:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). &#160;All inter-company transactions and balances have been eliminated in consolidation.&lt;/p&gt;
</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:SubsequentEventsPolicyPolicyTextBlock contextRef="D240601_250531" id="ixv-4696">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Subsequent Events:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;span style="color:#000000"&gt;The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.&lt;/span&gt;&lt;/p&gt;
</us-gaap:SubsequentEventsPolicyPolicyTextBlock>
    <us-gaap:UseOfEstimates contextRef="D240601_250531" id="ixv-4703">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Use of Estimates:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. &#160;Actual results could differ from those estimates.&lt;/p&gt;
</us-gaap:UseOfEstimates>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="D240601_250531" id="ixv-4709">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Cash and Cash Equivalents:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.&lt;/p&gt;
</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:CashCashEquivalentsAndShortTermInvestmentsTextBlock contextRef="D240601_250531" id="ixv-4724">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;b&gt;Short-Term Investments:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2025 and May 31, 2024 include money market funds, U.S. treasury securities and corporate bonds stated at fair value, which approximates cost. &#160;Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes.&#160;Realized gains and losses on the sale of investments are determined using the specific identification method.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The short-term investments are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.&lt;/p&gt;
</us-gaap:CashCashEquivalentsAndShortTermInvestmentsTextBlock>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy contextRef="D240601_250531" id="ixv-4732">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;b&gt;Accounts and Other Receivables:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. &#160;Management provides for estimated credit losses through a charge to expense and a credit to a valuation allowance based on its assessment of the current status of individual accounts. &#160;Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.&lt;/p&gt;
</us-gaap:TradeAndOtherAccountsReceivablePolicy>
    <us-gaap:InventoryPolicyTextBlock contextRef="D240601_250531" id="ixv-4738">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Inventory:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.&lt;/p&gt;
</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="D240601_250531" id="ixv-4744">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Property and Equipment:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;span style="color:#000000"&gt;Property and equipment is stated at cost net of accumulated depreciation. &#160;Depreciation is provided primarily using the straight-line method for financial reporting purposes and accelerated methods for income tax reporting purposes. &#160;Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.&lt;/span&gt;&lt;/p&gt;
</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:LifeInsuranceCorporateOrBankOwnedTextBlock contextRef="D240601_250531" id="ixv-4751">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Cash Value of Life Insurance:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Cash value of life insurance is stated at the surrender value of the contracts.&lt;/p&gt;
</us-gaap:LifeInsuranceCorporateOrBankOwnedTextBlock>
    <us-gaap:RevenueRecognitionPolicyTextBlock contextRef="D240601_250531" id="ixv-4757">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Revenue Recognition:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify"&gt;Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify"&gt;A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract&#x2019;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of the Company&#x2019;s contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations. &#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify"&gt;For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying the Company&#x2019;s performance obligations. &#160;Incurred costs represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. &#160;Contract costs include labor, material and overhead. &#160;Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. &#160;Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. &#160;In the year ended May 31, 2025, 68% of revenue was recorded for contracts in which revenue was recognized over time while 32% was recognized at a point in time. &#160;In the year ended May 31, 2024, 59% of revenue was recorded for contracts in which revenue was recognized over time while 41% was recognized at a point in time. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;color:#000000;text-align:justify"&gt;Progress payments are typically negotiated for longer term projects. &#160;Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). &#160;For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. &#160;The asset, &#x201c;costs and estimated earnings in excess of billings,&#x201d; represents revenues recognized in excess of amounts billed. &#160;The liability, &#x201c;billings in excess of costs and estimated earnings,&#x201d; represents billings in excess of revenues recognized.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;If applicable, the Company recognizes an asset for the incremental material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. &#160;As of May 31, 2025 and 2024, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. &#160;These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.&lt;/p&gt;
</us-gaap:RevenueRecognitionPolicyTextBlock>
    <us-gaap:ShippingAndHandlingCostPolicyTextBlock contextRef="D240601_250531" id="ixv-4775">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Shipping and Handling Costs:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $239,182 and $190,939 for the years ended May 31, 2025 and 2024. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.&lt;/p&gt;
</us-gaap:ShippingAndHandlingCostPolicyTextBlock>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="D240601_250531" id="ixv-4781">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;b&gt;Income Taxes:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. &#160;Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. &#160;Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. &#160;The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2025 and 2024. &#160;The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2025 and 2024. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;span style="color:#000000"&gt;The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2022.&lt;/span&gt;&lt;/p&gt;
</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:RegulatoryIncomeTaxesPolicy contextRef="D240601_250531" id="ixv-4792">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Sales Taxes:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;span style="color:#000000"&gt;Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. &#160;The Company collects these taxes from customers and remits the entire amount as required by the applicable law. &#160;The Company excludes from revenues and expenses the tax collected and remitted.&lt;/span&gt;&lt;/p&gt;
</us-gaap:RegulatoryIncomeTaxesPolicy>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="D240601_250531" id="ixv-4799">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;Stock-Based Compensation:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2025 and 2024 was $1,222,509 and $1,047,252.&lt;/p&gt;
</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:StockOptionPlanExpense
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7680"
      unitRef="USD">1222509</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7681"
      unitRef="USD">1047252</us-gaap:StockOptionPlanExpense>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="D240601_250531" id="ixv-4813">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;New Accounting Standards:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Any recently issued Accounting Standards Codification (ASC) guidance has either been implemented or is not significant to the Company.&lt;/p&gt;
</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock contextRef="D240601_250531" id="ixv-4819">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;2. &#160;Accounts and Other Receivables:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:347.7pt"&gt;&lt;tr&gt;&lt;td style="width:220.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:55pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Customers&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:55pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"&gt;&lt;b&gt;6,164,251&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;5,241,874&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Customers &#x2013;&#160;retention&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:55pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"&gt;&lt;b&gt;-&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;-&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.7pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:55pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"&gt;&lt;b&gt;6,164,251&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;5,241,874&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Less allowance for estimated credit losses&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:55pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"&gt;&lt;b&gt;564,466&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;29,466&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.7pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:55pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"&gt;&lt;b&gt;5,599,785&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;5,212,408&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Retention receivable from customers represents amounts invoiced to customers where payments have been partially withheld pending completion of the project. &#160;The Company increased its allowance for estimated credit losses due to the uncertainty of collecting a $751,000 balance overdue on a structural project. &#160;The Company is in discussion with the customer regarding payment of this balance.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;All other amounts are expected to be collected within the next fiscal year.&lt;/p&gt;
</us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock>
    <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock contextRef="D240601_250531" id="ixv-4822">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:347.7pt"&gt;&lt;tr&gt;&lt;td style="width:220.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:55pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Customers&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:55pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"&gt;&lt;b&gt;6,164,251&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;5,241,874&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Customers &#x2013;&#160;retention&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:55pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"&gt;&lt;b&gt;-&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;-&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.7pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:55pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"&gt;&lt;b&gt;6,164,251&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;5,241,874&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Less allowance for estimated credit losses&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:55pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"&gt;&lt;b&gt;564,466&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;29,466&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.7pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:55pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:2pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:53pt"&gt;&lt;b&gt;5,599,785&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;5,212,408&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="I250531_MajCust-Customers"
      decimals="INF"
      id="ixv-7682"
      unitRef="USD">6164251</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="I240531_MajCust-Customers"
      decimals="INF"
      id="ixv-7683"
      unitRef="USD">5241874</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="I250531_MajCust-CustomersRetention"
      decimals="128"
      id="ixv-7684"
      unitRef="USD">0</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="I240531_MajCust-CustomersRetention"
      decimals="128"
      id="ixv-7685"
      unitRef="USD">0</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="I250531"
      decimals="INF"
      id="ixv-7686"
      unitRef="USD">6164251</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="I240531"
      decimals="INF"
      id="ixv-7687"
      unitRef="USD">5241874</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables
      contextRef="I250531"
      decimals="INF"
      id="ixv-7688"
      unitRef="USD">564466</us-gaap:AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables>
    <us-gaap:AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables
      contextRef="I240531"
      decimals="INF"
      id="ixv-7689"
      unitRef="USD">29466</us-gaap:AllowanceForDoubtfulAccountsPremiumsAndOtherReceivables>
    <us-gaap:AccountsAndOtherReceivablesNetCurrent
      contextRef="I250531"
      decimals="INF"
      id="ixv-7690"
      unitRef="USD">5599785</us-gaap:AccountsAndOtherReceivablesNetCurrent>
    <us-gaap:AccountsAndOtherReceivablesNetCurrent
      contextRef="I240531"
      decimals="INF"
      id="ixv-7691"
      unitRef="USD">5212408</us-gaap:AccountsAndOtherReceivablesNetCurrent>
    <us-gaap:InventoryDisclosureTextBlock contextRef="D240601_250531" id="ixv-4903">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;3. &#160;Inventory:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:220.1pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:68.05pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Raw materials&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;627,616&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;886,947&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Work-in-process&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;7,222,613&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;6,412,497&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Finished goods&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;286,092&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;271,608&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:68.05pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;8,136,321&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;7,571,052&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Less allowance for obsolescence&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt;border-bottom:1pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;23,000&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:1pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:1pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;59,000&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:68.05pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;8,113,321&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;7,512,052&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfUtilityInventoryTextBlock contextRef="D240601_250531" id="ixv-4906">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:220.1pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:68.05pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Raw materials&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;627,616&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;886,947&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Work-in-process&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;7,222,613&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;6,412,497&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Finished goods&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;286,092&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;271,608&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:68.05pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;8,136,321&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;7,571,052&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Less allowance for obsolescence&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt;border-bottom:1pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;23,000&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:1pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:1pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;59,000&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:68.05pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;8,113,321&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;7,512,052&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfUtilityInventoryTextBlock>
    <us-gaap:InventoryGross
      contextRef="I250531_PublicUtilitiesInventory-PublicUtilitiesInventoryRawMaterials"
      decimals="INF"
      id="ixv-7692"
      unitRef="USD">627616</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="I240531_PublicUtilitiesInventory-PublicUtilitiesInventoryRawMaterials"
      decimals="INF"
      id="ixv-7693"
      unitRef="USD">886947</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="I250531_PublicUtilitiesInventory-WorkInProcess"
      decimals="INF"
      id="ixv-7694"
      unitRef="USD">7222613</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="I240531_PublicUtilitiesInventory-WorkInProcess"
      decimals="INF"
      id="ixv-7695"
      unitRef="USD">6412497</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="I250531_PublicUtilitiesInventory-FinishedGoods"
      decimals="INF"
      id="ixv-7696"
      unitRef="USD">286092</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="I240531_PublicUtilitiesInventory-FinishedGoods"
      decimals="INF"
      id="ixv-7697"
      unitRef="USD">271608</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="I250531"
      decimals="INF"
      id="ixv-7698"
      unitRef="USD">8136321</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="I240531"
      decimals="INF"
      id="ixv-7699"
      unitRef="USD">7571052</us-gaap:InventoryGross>
    <us-gaap:InventoryAdjustments
      contextRef="I250531"
      decimals="INF"
      id="ixv-7700"
      unitRef="USD">23000</us-gaap:InventoryAdjustments>
    <us-gaap:InventoryAdjustments
      contextRef="I240531"
      decimals="INF"
      id="ixv-7701"
      unitRef="USD">59000</us-gaap:InventoryAdjustments>
    <us-gaap:InventoryNet
      contextRef="I250531"
      decimals="INF"
      id="ixv-7702"
      unitRef="USD">8113321</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="I240531"
      decimals="INF"
      id="ixv-7703"
      unitRef="USD">7512052</us-gaap:InventoryNet>
    <us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock contextRef="D240601_250531" id="ixv-4995">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;b&gt;4. &#160;Costs and Estimated Earnings on Uncompleted Contracts:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:220.85pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Costs incurred on uncompleted contracts&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;12,499,313&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;10,576,401&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Estimated earnings&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;13,175,240&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;10,459,240&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;25,674,553&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;21,035,641&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Less billings to date&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;24,696,121&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;22,280,350&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;978,432&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;(1,244,709)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Amounts are included in the accompanying balance sheets under the following captions:&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:220.6pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.8pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Costs and estimated earnings in excess of billings&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;&lt;b&gt;5,360,499&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.8pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;4,356,565&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Billings in excess of costs and estimated earnings &lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;&lt;b&gt;4,382,067&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.8pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;5,601,274&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.6pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;&lt;b&gt;978,432&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.8pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;(1,244,709)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The following summarizes the status of Projects in progress as of May 31, 2025 and 2024:&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="border-collapse:collapse"&gt;&lt;tr&gt;&lt;td style="width:252pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:93.6pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:252pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;Number of Projects in progress&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;21&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;19&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:252pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;Aggregate percent complete&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;65%&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;53%&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:252pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;Aggregate amount remaining&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;$13,100,204&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$18,650,312&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:252pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;Percentage of total value invoiced to customer&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;64%&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;56%&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company expects to recognize the majority of remaining revenue on all open projects during the May 31, 2026 fiscal year. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Revenue recognized during the years ended May 31, 2025 and 2024 for amounts included in billings in excess of costs and estimated earnings as of the beginning of the year amounted to $5,601,000, and $1,992,000.&lt;/p&gt;
</us-gaap:BusinessAndContractualArrangementsDisclosureTextBlock>
    <us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock contextRef="D240601_250531" id="ixv-4998">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:220.85pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Costs incurred on uncompleted contracts&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;12,499,313&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;10,576,401&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Estimated earnings&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;13,175,240&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;10,459,240&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;25,674,553&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;21,035,641&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Less billings to date&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;24,696,121&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;22,280,350&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;978,432&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;(1,244,709)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock>
    <fil:CostsIncurredOnUncompletedContracts
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7704"
      unitRef="USD">12499313</fil:CostsIncurredOnUncompletedContracts>
    <fil:CostsIncurredOnUncompletedContracts
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7705"
      unitRef="USD">10576401</fil:CostsIncurredOnUncompletedContracts>
    <fil:CostsIncurredOnUncompletedContractsEstimatedEarnings
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7706"
      unitRef="USD">13175240</fil:CostsIncurredOnUncompletedContractsEstimatedEarnings>
    <fil:CostsIncurredOnUncompletedContractsEstimatedEarnings
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7707"
      unitRef="USD">10459240</fil:CostsIncurredOnUncompletedContractsEstimatedEarnings>
    <fil:CostsIncurredOnUncompletedContractsGross
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7708"
      unitRef="USD">25674553</fil:CostsIncurredOnUncompletedContractsGross>
    <fil:CostsIncurredOnUncompletedContractsGross
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7709"
      unitRef="USD">21035641</fil:CostsIncurredOnUncompletedContractsGross>
    <fil:CostsIncurredOnUncompletedContractsBillingsToDate
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7710"
      unitRef="USD">24696121</fil:CostsIncurredOnUncompletedContractsBillingsToDate>
    <fil:CostsIncurredOnUncompletedContractsBillingsToDate
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7711"
      unitRef="USD">22280350</fil:CostsIncurredOnUncompletedContractsBillingsToDate>
    <fil:CostsIncurredOnUncompletedContractsNet
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7712"
      unitRef="USD">978432</fil:CostsIncurredOnUncompletedContractsNet>
    <fil:CostsIncurredOnUncompletedContractsNet
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7713"
      unitRef="USD">-1244709</fil:CostsIncurredOnUncompletedContractsNet>
    <fil:ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock contextRef="D240601_250531" id="ixv-5076">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:220.6pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.8pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Costs and estimated earnings in excess of billings&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;&lt;b&gt;5,360,499&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.8pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;4,356,565&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Billings in excess of costs and estimated earnings &lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;&lt;b&gt;4,382,067&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.8pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;5,601,274&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.6pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;&lt;b&gt;978,432&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.8pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;(1,244,709)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</fil:ScheduleOfAmountsAreIncludedInTheAccompanyingBalanceSheetsTextBlock>
    <fil:CostsAndEstimatedEarningsInExcessOfBillings
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7714"
      unitRef="USD">5360499</fil:CostsAndEstimatedEarningsInExcessOfBillings>
    <fil:CostsAndEstimatedEarningsInExcessOfBillings
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7715"
      unitRef="USD">4356565</fil:CostsAndEstimatedEarningsInExcessOfBillings>
    <fil:BillingsInExcessOfCostsAndEstimatedEarnings
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7716"
      unitRef="USD">-4382067</fil:BillingsInExcessOfCostsAndEstimatedEarnings>
    <fil:BillingsInExcessOfCostsAndEstimatedEarnings
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7717"
      unitRef="USD">-5601274</fil:BillingsInExcessOfCostsAndEstimatedEarnings>
    <fil:CostsIncurredOnUncompletedContractsNet
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7718"
      unitRef="USD">978432</fil:CostsIncurredOnUncompletedContractsNet>
    <fil:CostsIncurredOnUncompletedContractsNet
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7719"
      unitRef="USD">-1244709</fil:CostsIncurredOnUncompletedContractsNet>
    <fil:SchduleOfStatusOfProjectsInProgressTextBlock contextRef="D240601_250531" id="ixv-5138">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="border-collapse:collapse"&gt;&lt;tr&gt;&lt;td style="width:252pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:93.6pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:252pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;Number of Projects in progress&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;21&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;19&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:252pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;Aggregate percent complete&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;65%&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;53%&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:252pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;Aggregate amount remaining&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;$13,100,204&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$18,650,312&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:252pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;Percentage of total value invoiced to customer&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;64%&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:93.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;56%&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</fil:SchduleOfStatusOfProjectsInProgressTextBlock>
    <fil:NumberOfProjectsInProgress
      contextRef="I250531"
      decimals="INF"
      id="ixv-7720"
      unitRef="Pure">21</fil:NumberOfProjectsInProgress>
    <fil:NumberOfProjectsInProgress
      contextRef="I240531"
      decimals="INF"
      id="ixv-7721"
      unitRef="Pure">19</fil:NumberOfProjectsInProgress>
    <fil:AggregatePercentComplete
      contextRef="I250531"
      decimals="INF"
      id="ixv-7722"
      unitRef="Pure">0.65</fil:AggregatePercentComplete>
    <fil:AggregatePercentComplete
      contextRef="I240531"
      decimals="INF"
      id="ixv-7723"
      unitRef="Pure">0.53</fil:AggregatePercentComplete>
    <fil:AggregateAmountRemaining
      contextRef="I250531"
      decimals="INF"
      id="ixv-7724"
      unitRef="USD">13100204</fil:AggregateAmountRemaining>
    <fil:AggregateAmountRemaining
      contextRef="I240531"
      decimals="INF"
      id="ixv-7725"
      unitRef="USD">18650312</fil:AggregateAmountRemaining>
    <fil:PercentageOfTotalValueInvoicedToCustomer
      contextRef="I250531"
      decimals="INF"
      id="ixv-7726"
      unitRef="Pure">0.64</fil:PercentageOfTotalValueInvoicedToCustomer>
    <fil:PercentageOfTotalValueInvoicedToCustomer
      contextRef="I240531"
      decimals="INF"
      id="ixv-7727"
      unitRef="Pure">0.56</fil:PercentageOfTotalValueInvoicedToCustomer>
    <fil:RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7729"
      unitRef="USD">5601000</fil:RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings>
    <fil:RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7730"
      unitRef="USD">1992000</fil:RevenuesRecognizedForAmountsIncludedInBillingsInExcessOfCostsAndEstimatedEarnings>
    <us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy contextRef="D240601_250531" id="ixv-5190">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;5. &#160;Maintenance and Other Inventory:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:356.4pt"&gt;&lt;tr&gt;&lt;td style="width:218.45pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.45pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Maintenance and other inventory&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;$ 1,872,931&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;$ 2,416,748&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Less allowance for obsolescence&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;765,056&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;836,919&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.45pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;$ 1,107,875&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;$ 1,579,829&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. &#160;This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering. &#160;This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. &#160;Therefore, management of the Company has recorded an allowance for potential inventory obsolescence. &#160;$107,000 and $791,000 of inventory was disposed of during the years ended May 31, 2025 and 2024. &#160;The provision for potential inventory obsolescence was zero and $386,000 for the years ended May 31, 2025 and 2024. &#160;The Company continues to rework slow-moving inventory, where applicable, to convert it to product to be used on customer orders. &lt;/p&gt;
</us-gaap:PropertyPlantAndEquipmentPlannedMajorMaintenanceActivitiesPolicy>
    <fil:ScheduleOfMaintenanceAndOtherInventoryTextBlock contextRef="D240601_250531" id="ixv-5193">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:356.4pt"&gt;&lt;tr&gt;&lt;td style="width:218.45pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.45pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Maintenance and other inventory&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;$ 1,872,931&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;$ 2,416,748&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Less allowance for obsolescence&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;765,056&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;836,919&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.45pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;$ 1,107,875&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;$ 1,579,829&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</fil:ScheduleOfMaintenanceAndOtherInventoryTextBlock>
    <fil:MaintenanceAndOtherInventoryGross
      contextRef="I250531"
      decimals="INF"
      id="ixv-7731"
      unitRef="USD">1872931</fil:MaintenanceAndOtherInventoryGross>
    <fil:MaintenanceAndOtherInventoryGross
      contextRef="I240531"
      decimals="INF"
      id="ixv-7732"
      unitRef="USD">2416748</fil:MaintenanceAndOtherInventoryGross>
    <fil:MaintenanceAndOtherInventoryAllowanceForObsolescence
      contextRef="I250531"
      decimals="INF"
      id="ixv-7733"
      unitRef="USD">765056</fil:MaintenanceAndOtherInventoryAllowanceForObsolescence>
    <fil:MaintenanceAndOtherInventoryAllowanceForObsolescence
      contextRef="I240531"
      decimals="INF"
      id="ixv-7734"
      unitRef="USD">836919</fil:MaintenanceAndOtherInventoryAllowanceForObsolescence>
    <fil:MaintenanceAndOtherInventoryNet
      contextRef="I250531"
      decimals="INF"
      id="ixv-7735"
      unitRef="USD">1107875</fil:MaintenanceAndOtherInventoryNet>
    <fil:MaintenanceAndOtherInventoryNet
      contextRef="I240531"
      decimals="INF"
      id="ixv-7736"
      unitRef="USD">1579829</fil:MaintenanceAndOtherInventoryNet>
    <fil:InventoryDisposedOf
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7737"
      unitRef="USD">107000</fil:InventoryDisposedOf>
    <fil:InventoryDisposedOf
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7738"
      unitRef="USD">791000</fil:InventoryDisposedOf>
    <fil:ProvisionForPotentialInventoryObsolescence
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7739"
      unitRef="USD">0</fil:ProvisionForPotentialInventoryObsolescence>
    <fil:ProvisionForPotentialInventoryObsolescence
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7740"
      unitRef="USD">386000</fil:ProvisionForPotentialInventoryObsolescence>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock contextRef="D240601_250531" id="ixv-5237">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;6. &#160;Property and Equipment:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:220.85pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:-13.9pt;margin-right:6.15pt;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Land&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;195,220&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;195,220&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Buildings and improvements&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;10,160,842&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;10,054,459&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Machinery and equipment&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;17,950,644&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;15,956,076&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Office furniture and equipment&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;3,193,150&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;3,113,921&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Autos and trucks&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;91,717&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;24,818&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Land improvements&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;662,168&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;662,168&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;32,253,741&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;30,006,662&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Less accumulated depreciation&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;20,179,569&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;18,825,729&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;12,074,172&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;11,180,933&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Depreciation expense was $1,708,849 and $1,690,239 for the years ended May 31, 2025 and 2024.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company has commitments to make capital expenditures of approximately $1,853,000 as of May 31, 2025.&lt;/p&gt;
</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="D240601_250531" id="ixv-5240">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:220.85pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:-13.9pt;margin-right:6.15pt;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Land&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;195,220&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;195,220&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Buildings and improvements&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;10,160,842&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;10,054,459&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Machinery and equipment&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;17,950,644&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;15,956,076&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Office furniture and equipment&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;3,193,150&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;3,113,921&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Autos and trucks&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;91,717&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;24,818&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Land improvements&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;662,168&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;662,168&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;32,253,741&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;30,006,662&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Less accumulated depreciation&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;20,179,569&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;18,825,729&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.85pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;12,074,172&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.35pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;11,180,933&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I250531_PpeByType-Land"
      decimals="INF"
      id="ixv-7741"
      unitRef="USD">195220</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I240531_PpeByType-Land"
      decimals="INF"
      id="ixv-7742"
      unitRef="USD">195220</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I250531_PpeByType-BuildingImprovements"
      decimals="INF"
      id="ixv-7743"
      unitRef="USD">10160842</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I240531_PpeByType-BuildingImprovements"
      decimals="INF"
      id="ixv-7744"
      unitRef="USD">10054459</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I250531_PpeByType-MachineryAndEquipment"
      decimals="INF"
      id="ixv-7745"
      unitRef="USD">17950644</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I240531_PpeByType-MachineryAndEquipment"
      decimals="INF"
      id="ixv-7746"
      unitRef="USD">15956076</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I250531_PpeByType-FurnitureAndFixtures"
      decimals="INF"
      id="ixv-7747"
      unitRef="USD">3193150</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I240531_PpeByType-FurnitureAndFixtures"
      decimals="INF"
      id="ixv-7748"
      unitRef="USD">3113921</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I250531_PpeByType-Vehicles"
      decimals="INF"
      id="ixv-7749"
      unitRef="USD">91717</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I240531_PpeByType-Vehicles"
      decimals="INF"
      id="ixv-7750"
      unitRef="USD">24818</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I250531_PpeByType-LandImprovements"
      decimals="INF"
      id="ixv-7751"
      unitRef="USD">662168</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I240531_PpeByType-LandImprovements"
      decimals="INF"
      id="ixv-7752"
      unitRef="USD">662168</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I250531"
      decimals="INF"
      id="ixv-7753"
      unitRef="USD">32253741</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="I240531"
      decimals="INF"
      id="ixv-7754"
      unitRef="USD">30006662</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="I250531"
      decimals="INF"
      id="ixv-7755"
      unitRef="USD">20179569</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="I240531"
      decimals="INF"
      id="ixv-7756"
      unitRef="USD">18825729</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="I250531"
      decimals="INF"
      id="ixv-7757"
      unitRef="USD">12074172</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="I240531"
      decimals="INF"
      id="ixv-7758"
      unitRef="USD">11180933</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7759"
      unitRef="USD">1708849</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7760"
      unitRef="USD">1690239</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:OtherCommitment
      contextRef="I250531"
      decimals="INF"
      id="ixv-7761"
      unitRef="USD">1853000</us-gaap:OtherCommitment>
    <us-gaap:ShortTermDebtTextBlock contextRef="D240601_250531" id="ixv-5374">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&lt;span style="color:#000080"&gt;&lt;b&gt;7. &#160;Short-Term Borrowings:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company has available a $10,000,000 bank demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day SOFR rate plus 2.365%. The line is secured by a negative pledge of the Company's real and personal property and is subject to renewal annually. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;There is no amount outstanding under the line of credit at May 31, 2025 or 2024. &#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company uses a cash management facility under which the bank draws against the available line of credit to cover checks presented for payment on a daily basis. &#160;Outstanding checks under this arrangement totaled $97,673 and $372,347 as of May 31, 2025 and 2024. &#160;These amounts are included in accounts payable on the accompanying balance sheets.&lt;/p&gt;
</us-gaap:ShortTermDebtTextBlock>
    <us-gaap:LineOfCredit
      contextRef="I250531"
      decimals="INF"
      id="ixv-7762"
      unitRef="USD">10000000</us-gaap:LineOfCredit>
    <us-gaap:LineOfCreditFacilityAverageOutstandingAmount
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7763"
      unitRef="USD">0</us-gaap:LineOfCreditFacilityAverageOutstandingAmount>
    <fil:OutstandingChecks
      contextRef="I250531"
      decimals="INF"
      id="ixv-7764"
      unitRef="USD">97673</fil:OutstandingChecks>
    <fil:OutstandingChecks
      contextRef="I240531"
      decimals="INF"
      id="ixv-7765"
      unitRef="USD">372347</fil:OutstandingChecks>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock contextRef="D240601_250531" id="ixv-5385">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;8. &#160;Accrued Expenses: &lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:220.1pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:68.05pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Customer deposits&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;104,825&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;285,689&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Personnel costs&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;3,214,157&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;3,763,777&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Other&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;753,454&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;614,997&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:68.05pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;4,072,436&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;4,664,463&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock contextRef="D240601_250531" id="ixv-5388">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:220.1pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:68.05pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Customer deposits&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;104,825&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;285,689&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Personnel costs&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;3,214,157&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;3,763,777&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Other&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:68.05pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;753,454&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;614,997&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:220.1pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:68.05pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;4,072,436&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;4,664,463&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I250531_FvByLiabClass-CustomerDeposits"
      decimals="INF"
      id="ixv-7766"
      unitRef="USD">104825</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I240531_FvByLiabClass-CustomerDeposits"
      decimals="INF"
      id="ixv-7767"
      unitRef="USD">285689</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I250531_FvByLiabClass-PersonnelCosts"
      decimals="INF"
      id="ixv-7768"
      unitRef="USD">3214157</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I240531_FvByLiabClass-PersonnelCosts"
      decimals="INF"
      id="ixv-7769"
      unitRef="USD">3763777</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I250531_FvByLiabClass-Other"
      decimals="INF"
      id="ixv-7770"
      unitRef="USD">753454</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I240531_FvByLiabClass-Other"
      decimals="INF"
      id="ixv-7771"
      unitRef="USD">614997</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I250531"
      decimals="INF"
      id="ixv-7772"
      unitRef="USD">4072436</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I240531"
      decimals="INF"
      id="ixv-7773"
      unitRef="USD">4664463</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="D240601_250531" id="ixv-5454">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;9. &#160;Sales:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company manufactures and sells a single group of very similar products that have many different applications for customers. &#160;These similar products are included in one of nine categories; namely, Seismic Dampers, Fluidicshoks&#xae;, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs, Custom Shock and Vibration Isolators, and Custom Actuators. &#160;Management does not track or otherwise account for sales broken down by these categories. &#160;Sales of the Company's products are made to three general groups of customers: industrial, structural and aerospace / defense. &#160;A breakdown of sales to these three general groups of customers is as follows: &#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:216.1pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&lt;span style="color:#000080"&gt;&lt;b&gt;202&lt;/b&gt;&lt;b&gt;5&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:12pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Structural&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;$ 14,827,044&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:12pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;$ 14,406,863&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Aerospace / Defense&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;27,134,038&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:12pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;26,675,321&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Industrial&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;4,331,643&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:12pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;3,500,623&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.1pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:65.95pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;$ 46,292,725&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:12pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;$ 44,582,807&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Sales to two customers approximated 36% (21% and 15% respectively) of net sales for 2025. Sales to a single customer approximated 21% of net sales for 2024.&lt;/p&gt;
</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="D240601_250531" id="ixv-5459">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:216.1pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&lt;span style="color:#000080"&gt;&lt;b&gt;202&lt;/b&gt;&lt;b&gt;5&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:12pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Structural&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;$ 14,827,044&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:12pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;$ 14,406,863&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Aerospace / Defense&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;27,134,038&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:12pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;26,675,321&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.1pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Industrial&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;4,331,643&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:12pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;3,500,623&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.1pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:65.95pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;$ 46,292,725&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:12pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:65.95pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;$ 44,582,807&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:Revenues
      contextRef="D240601_250531_StBusnSeg-Structural"
      decimals="INF"
      id="ixv-7774"
      unitRef="USD">14827044</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="D230601_240531_StBusnSeg-Structural"
      decimals="INF"
      id="ixv-7775"
      unitRef="USD">14406863</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="D240601_250531_StBusnSeg-AerospaceDefense"
      decimals="INF"
      id="ixv-7776"
      unitRef="USD">27134038</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="D230601_240531_StBusnSeg-AerospaceDefense"
      decimals="INF"
      id="ixv-7777"
      unitRef="USD">26675321</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="D240601_250531_StBusnSeg-Industrial"
      decimals="INF"
      id="ixv-7778"
      unitRef="USD">4331643</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="D230601_240531_StBusnSeg-Industrial"
      decimals="INF"
      id="ixv-7779"
      unitRef="USD">3500623</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7780"
      unitRef="USD">46292725</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7781"
      unitRef="USD">44582807</us-gaap:Revenues>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="D240601_250531" id="ixv-5515">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;10. &#160;Income Taxes:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:391.55pt"&gt;&lt;tr&gt;&lt;td style="width:216.5pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="width:85pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:4.75pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Current tax provision:&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:85pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:4.75pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Federal &lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;2,204,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;2,365,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;State&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;1,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;1,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;/td&gt;&lt;td style="width:67.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;2,205,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;2,366,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Deferred tax provision (benefit):&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Federal&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;(585,000)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;(444,000)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;State&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;-&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;-&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;/td&gt;&lt;td style="width:67.5pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;(585,000)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;(444,000)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;/td&gt;&lt;td style="width:67.5pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;1,620,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;1,922,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Computed tax provision at the expected statutory rate&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;2,317,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;2,293,400&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Tax effect of permanent differences:&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Research tax credits&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;(489,692)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;(407,675)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Foreign-derived intangible income deduction&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;(224,700)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;(142,100)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Stock option costs&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;(11,682)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;48,500&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Other permanent differences&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;24,300&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;2,800&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Other&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;4,774&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;127,075&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;1,620,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;1,922,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Effective income tax rate&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;14.7%&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;17.6%&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Significant components of the Company's deferred tax assets and liabilities consist of the following:&lt;/p&gt;
&lt;p style="font:11pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Deferred tax assets:&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Allowance for estimated credit losses&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;118,500&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;6,200&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Tax inventory adjustment&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;52,600&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;57,300&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Allowance for obsolete inventory&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;165,500&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;188,100&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Accrued vacation&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;169,600&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;163,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Warranty reserve&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;112,500&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;100,700&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;R&amp;amp;D capitalization&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;2,111,200&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;1,479,800&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Stock options issued for services&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;117,700&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;181,200&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.25pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;2,847,600&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;2,176,300&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Deferred tax liabilities:&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Excess tax depreciation&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;(1,249,600)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;(1,163,685)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000"&gt;Net deferred tax assets&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;1,598,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;1,012,615&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. &#160;The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. &#160;A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. &#160;The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. &#160;The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. &#160;The Company will need to generate approximately $13.6 million in taxable income in future years in order to realize the deferred tax assets recorded as of May 31, 2025 of $2,847,600.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company and its subsidiary file consolidated Federal and State income tax returns. &#160;As of May 31, 2025, the Company had State investment tax credit carryforwards of approximately $493,000 expiring through May 2030.&lt;/p&gt;
</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="D240601_250531" id="ixv-5518">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:391.55pt"&gt;&lt;tr&gt;&lt;td style="width:216.5pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="width:85pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:4.75pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Current tax provision:&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:85pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:4.75pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Federal &lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;2,204,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;2,365,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;State&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;1,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;1,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;/td&gt;&lt;td style="width:67.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;2,205,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;2,366,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Deferred tax provision (benefit):&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Federal&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;(585,000)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;(444,000)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;State&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;-&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;-&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;/td&gt;&lt;td style="width:67.5pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;(585,000)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;(444,000)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2" style="width:234pt" valign="bottom"&gt;&lt;/td&gt;&lt;td style="width:67.5pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:62pt"&gt;&lt;b&gt;1,620,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:18.15pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.15pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;1,922,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7782"
      unitRef="USD">2204000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7783"
      unitRef="USD">2365000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7784"
      unitRef="USD">1000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7785"
      unitRef="USD">1000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentFederalStateAndLocalTaxExpenseBenefit
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7786"
      unitRef="USD">2205000</us-gaap:CurrentFederalStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentFederalStateAndLocalTaxExpenseBenefit
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7787"
      unitRef="USD">2366000</us-gaap:CurrentFederalStateAndLocalTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7788"
      unitRef="USD">-585000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7789"
      unitRef="USD">-444000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="D240601_250531"
      decimals="128"
      id="ixv-7790"
      unitRef="USD">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="D230601_240531"
      decimals="128"
      id="ixv-7791"
      unitRef="USD">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7792"
      unitRef="USD">-585000</us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit>
    <us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7793"
      unitRef="USD">-444000</us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7794"
      unitRef="USD">1620000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7795"
      unitRef="USD">1922000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="D240601_250531" id="ixv-5664">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Computed tax provision at the expected statutory rate&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;2,317,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;2,293,400&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Tax effect of permanent differences:&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Research tax credits&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;(489,692)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;(407,675)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Foreign-derived intangible income deduction&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;(224,700)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;(142,100)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Stock option costs&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;(11,682)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;48,500&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:9pt;color:#000000"&gt;Other permanent differences&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;24,300&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;2,800&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Other&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;4,774&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;127,075&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;&lt;b&gt;1,620,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:61pt"&gt;1,922,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:218.35pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Effective income tax rate&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;14.7%&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.65pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:66.65pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;17.6%&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7796"
      unitRef="USD">2317000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7797"
      unitRef="USD">2293400</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7798"
      unitRef="USD">489692</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7799"
      unitRef="USD">407675</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsForeign
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7800"
      unitRef="USD">224700</us-gaap:IncomeTaxReconciliationTaxCreditsForeign>
    <us-gaap:IncomeTaxReconciliationTaxCreditsForeign
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7801"
      unitRef="USD">142100</us-gaap:IncomeTaxReconciliationTaxCreditsForeign>
    <fil:StockOptionCosts
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7802"
      unitRef="USD">-11682</fil:StockOptionCosts>
    <fil:StockOptionCosts
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7803"
      unitRef="USD">48500</fil:StockOptionCosts>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7804"
      unitRef="USD">24300</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7805"
      unitRef="USD">2800</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <fil:OtherAdjustments
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7806"
      unitRef="USD">4774</fil:OtherAdjustments>
    <fil:OtherAdjustments
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7807"
      unitRef="USD">127075</fil:OtherAdjustments>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7808"
      unitRef="USD">1620000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7809"
      unitRef="USD">1922000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7810"
      unitRef="Pure">0.147</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7811"
      unitRef="Pure">0.176</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="D240601_250531" id="ixv-5808">&lt;p style="font:11pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Deferred tax assets:&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Allowance for estimated credit losses&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;118,500&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;6,200&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Tax inventory adjustment&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;52,600&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;57,300&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Allowance for obsolete inventory&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;165,500&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;188,100&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Accrued vacation&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;169,600&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;163,000&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Warranty reserve&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;112,500&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;100,700&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;R&amp;amp;D capitalization&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;2,111,200&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;1,479,800&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Stock options issued for services&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;117,700&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;181,200&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.25pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;2,847,600&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;2,176,300&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Deferred tax liabilities:&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:4.5pt;color:#000000"&gt;Excess tax depreciation&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;(1,249,600)&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;(1,163,685)&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:216.6pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000"&gt;Net deferred tax assets&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:4pt"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:63pt"&gt;&lt;b&gt;1,598,000&#160;&lt;/b&gt;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.25pt;border-top:0.75pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:60pt"&gt;1,012,615&#160;&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.45pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <fil:AllowanceForDoubtfulReceivables
      contextRef="I250531"
      decimals="INF"
      id="ixv-7812"
      unitRef="USD">118500</fil:AllowanceForDoubtfulReceivables>
    <fil:AllowanceForDoubtfulReceivables
      contextRef="I240531"
      decimals="INF"
      id="ixv-7813"
      unitRef="USD">6200</fil:AllowanceForDoubtfulReceivables>
    <fil:TaxInventoryAdjustment
      contextRef="I250531"
      decimals="INF"
      id="ixv-7814"
      unitRef="USD">52600</fil:TaxInventoryAdjustment>
    <fil:TaxInventoryAdjustment
      contextRef="I240531"
      decimals="INF"
      id="ixv-7815"
      unitRef="USD">57300</fil:TaxInventoryAdjustment>
    <fil:AllowanceForObsoleteInventory
      contextRef="I250531"
      decimals="INF"
      id="ixv-7816"
      unitRef="USD">165500</fil:AllowanceForObsoleteInventory>
    <fil:AllowanceForObsoleteInventory
      contextRef="I240531"
      decimals="INF"
      id="ixv-7817"
      unitRef="USD">188100</fil:AllowanceForObsoleteInventory>
    <fil:AccruedVacation
      contextRef="I250531"
      decimals="INF"
      id="ixv-7818"
      unitRef="USD">169600</fil:AccruedVacation>
    <fil:AccruedVacation
      contextRef="I240531"
      decimals="INF"
      id="ixv-7819"
      unitRef="USD">163000</fil:AccruedVacation>
    <fil:WarrantyReserve
      contextRef="I250531"
      decimals="INF"
      id="ixv-7820"
      unitRef="USD">112500</fil:WarrantyReserve>
    <fil:WarrantyReserve
      contextRef="I240531"
      decimals="INF"
      id="ixv-7821"
      unitRef="USD">100700</fil:WarrantyReserve>
    <fil:RDCapitalization
      contextRef="I250531"
      decimals="INF"
      id="ixv-7822"
      unitRef="USD">2111200</fil:RDCapitalization>
    <fil:RDCapitalization
      contextRef="I240531"
      decimals="INF"
      id="ixv-7823"
      unitRef="USD">1479800</fil:RDCapitalization>
    <fil:StockOptionsIssuedForServices
      contextRef="I250531"
      decimals="INF"
      id="ixv-7824"
      unitRef="USD">117700</fil:StockOptionsIssuedForServices>
    <fil:StockOptionsIssuedForServices
      contextRef="I240531"
      decimals="INF"
      id="ixv-7825"
      unitRef="USD">181200</fil:StockOptionsIssuedForServices>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="I250531"
      decimals="INF"
      id="ixv-7826"
      unitRef="USD">2847600</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="I240531"
      decimals="INF"
      id="ixv-7827"
      unitRef="USD">2176300</us-gaap:DeferredTaxAssetsGross>
    <fil:ExcessTaxDepreciation
      contextRef="I250531"
      decimals="INF"
      id="ixv-7828"
      unitRef="USD">1249600</fil:ExcessTaxDepreciation>
    <fil:ExcessTaxDepreciation
      contextRef="I240531"
      decimals="INF"
      id="ixv-7829"
      unitRef="USD">1163685</fil:ExcessTaxDepreciation>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="I250531"
      decimals="INF"
      id="ixv-7830"
      unitRef="USD">1598000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="I240531"
      decimals="INF"
      id="ixv-7831"
      unitRef="USD">1012615</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:EarningsPerShareTextBlock contextRef="D240601_250531" id="ixv-5999">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&lt;b&gt;11. &#160;Earnings Per Common Share: &lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Basic earnings per common share is computed by dividing income available to common stockholders by the weighted-average common shares outstanding for the period. &#160;Diluted earnings per common share reflects the weighted-average common shares outstanding and dilutive potential common shares, such as stock options.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;A reconciliation of weighted-average common shares outstanding to weighted-average common shares outstanding assuming dilution is as follows:&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:388.8pt"&gt;&lt;tr&gt;&lt;td style="width:258.7pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:258.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000"&gt;Average common shares outstanding&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;3,131,134&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;3,353,077&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:258.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000"&gt;Common shares issuable under stock option plans&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;147,555&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;135,711&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:258.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000"&gt;Average common shares outstanding assuming dilution&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;3,278,689&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;3,488,788&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock contextRef="D240601_250531" id="ixv-6006">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:388.8pt"&gt;&lt;tr&gt;&lt;td style="width:258.7pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:258.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000"&gt;Average common shares outstanding&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;3,131,134&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;3,353,077&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:258.7pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000"&gt;Common shares issuable under stock option plans&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;147,555&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;135,711&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:258.7pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;margin-left:6.2pt;color:#000000"&gt;Average common shares outstanding assuming dilution&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;3,278,689&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:4.7pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.7pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;3,488,788&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <fil:AverageCommonSharesOutstanding
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7832"
      unitRef="Shares">3131134</fil:AverageCommonSharesOutstanding>
    <fil:AverageCommonSharesOutstanding
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7833"
      unitRef="Shares">3353077</fil:AverageCommonSharesOutstanding>
    <fil:CommonSharesIssuableUnderStockOptionPlans
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7834"
      unitRef="Shares">147555</fil:CommonSharesIssuableUnderStockOptionPlans>
    <fil:CommonSharesIssuableUnderStockOptionPlans
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7835"
      unitRef="Shares">135711</fil:CommonSharesIssuableUnderStockOptionPlans>
    <fil:AverageCommonSharesOutstandingAssumingDilution
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7836"
      unitRef="Shares">3278689</fil:AverageCommonSharesOutstandingAssumingDilution>
    <fil:AverageCommonSharesOutstandingAssumingDilution
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7837"
      unitRef="Shares">3488788</fil:AverageCommonSharesOutstandingAssumingDilution>
    <us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock contextRef="D240601_250531" id="ixv-6049">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;12. &#160;Employee Stock Purchase Plan:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;In March 2004, the Company reserved 295,000 shares of common stock for issuance pursuant to a non-qualified employee stock purchase plan. &#160;Participation in the employee stock purchase plan is voluntary for all eligible employees of the Company. &#160;Purchase of common shares can be made by employee contributions through payroll deductions and without brokers&#x2019; fees. &#160;At the end of each calendar quarter, the employee contributions will be applied to the purchase of common shares using a share value equal to the mean between the closing bid and ask prices of the stock on that date. &#160;These shares are distributed to the employees at the end of each calendar quarter or upon withdrawal from the plan. &#160;During the years ended May 31, 2025 and 2024, 155 ($32.51 to $49.40 price per share) and 372 ($21.70 to $48.89 price per share) common shares, respectively, were issued to employees. As of May 31, 2025, 215,838 shares were reserved for further issue. &lt;/p&gt;
</us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock>
    <fil:CommonSharesIssuedToEmployees
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7838"
      unitRef="Shares">155</fil:CommonSharesIssuedToEmployees>
    <fil:CommonSharesIssuedToEmployees
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7839"
      unitRef="Shares">372</fil:CommonSharesIssuedToEmployees>
    <fil:SharesReservedForFurtherIssue
      contextRef="I250531"
      decimals="INF"
      id="ixv-7840"
      unitRef="Shares">215838</fil:SharesReservedForFurtherIssue>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="D240601_250531" id="ixv-6055">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;13. &#160;Stock Option Plans:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;In 2022, the Company adopted a stock option plan which permits the Company to grant both incentive stock options and non-qualified stock options. &#160;The incentive stock options qualify for preferential treatment under the Internal Revenue Code. &#160;Under this plan, 260,000 shares of common stock have been reserved for grant to key employees and directors of the Company and 233,800 shares have been granted as of May 31, 2025. Under the plan, the option price may not be less than the fair market value of the stock at the time the options are granted. Options vest immediately and expire ten years from the date of grant.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Using the Black-Scholes option pricing model, the weighted average estimated fair value of each option granted under the plan was $13.61 during 2025 and $12.32 during 2024. &#160;The pricing model uses the assumptions noted in the following table. &#160;Expected volatility is based on the historical volatility of the Company's stock. &#160;The risk-free interest rate for periods within the contractual life of the option is based on the U.S. Treasury yield curve in effect at the time of the grant. &#160;The expected life of options granted is derived from previous history of stock exercises from the grant date and represents the period of time that options granted are expected to be outstanding. &#160;The Company uses historical data to estimate option exercise and employee termination assumptions under the valuation model. &#160;The Company has never paid dividends on its common stock and does not anticipate doing so in the foreseeable future.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:7.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Risk-free interest rate&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;3.87%&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:7.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;4.00%&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Expected life in years&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;4.2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:7.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;4.3&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Expected volatility &lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;39%&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:7.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;37%&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:4pt"&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Expected dividend yield&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;0%&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:7.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;0%&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;The following is a summary of stock option activity:&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;/td&gt;&lt;td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&lt;b&gt;Shares&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt;border-bottom:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&lt;b&gt;Weighted Average Exercise Price&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&lt;b&gt;Intrinsic Value&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Outstanding - May 31, 2023&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;333,000&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;12.70&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt"&gt;2,016,961&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Options granted&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;85,000&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;34.04&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Less: options exercised&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;76,750&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;12.54&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Less: options expired&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;750&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;-&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Outstanding - May 31, 2024&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;340,500&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;18.07&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt"&gt;11,185,815&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Options granted&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;89,800&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;37.24&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Less: options exercised&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;31,000&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;11.51&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Less: options expired&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;-&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.55pt"&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Outstanding - May 31, 2025&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;399,300&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;22.89&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt"&gt;6,341,305&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;We calculated intrinsic value for those options that had an exercise price lower than the market price of our common shares as of the balance sheet dates. &#160;The aggregate intrinsic value of outstanding options as of the end of each fiscal year is calculated as the difference between the exercise price of the underlying options and the market price of our common shares for the options that were in-the-money at that date (309,500 at May 31, 2025 and 340,500 at May 31, 2024). &#160;The Company's closing stock price was $36.93 and $50.92 as of May 31, 2025 and 2024. &#160;As of May 31, 2025, there are 26,200 options available for future grants under the 2022 stock option plan. &#160;$356,883 was received from the exercise of options during the fiscal year ended May 31, 2025; $957,205 was received from the exercise of options during the fiscal year ended May 31, 2024.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The following table summarizes information about stock options outstanding at May 31, 2025:&lt;/p&gt;
&lt;p style="font:6pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:367.2pt"&gt;&lt;tr&gt;&lt;td colspan="4" style="width:360pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;Outstanding and Exercisable&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;margin-right:-9pt;color:#000000;text-align:center"&gt;Range of Exercise Prices&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Number of Options&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Weighted Average Remaining Years of Contractual Life&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Weighted Average Exercise Price&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.01-$10.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;45,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;5.8&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.71&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.15pt"&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$10.01-$11.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;15,250&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;3.7&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$10.21&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.15pt"&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$11.01-$12.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;99,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;5.4&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$11.72&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.15pt"&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$12.01-$13.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;6,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;1.7&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$12.41&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$13.01-$14.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;10,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;1.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$13.80&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$16.01-$17.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;10,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;0.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$16.40&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$19.01-$20.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;47,500&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;7.3&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$19.89&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$20.01-$21.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;33,750&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;8.4&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$20.78&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$30.01-$31.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;43,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;9.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$30.55&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$43.01-$44.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;46,800&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;9.4&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$43.38&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$46.01-$47.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;43,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;8.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$46.99&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.01-$47.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;399,300&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;6.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$22.89&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The following table summarizes information about stock options outstanding at May 31, 2024:&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:367.2pt"&gt;&lt;tr&gt;&lt;td colspan="4" style="width:360pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;Outstanding and Exercisable&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;margin-right:-9pt;color:#000000;text-align:center"&gt;Range of Exercise Prices&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Number of Options&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Weighted Average Remaining Years of Contractual Life&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Weighted Average Exercise Price&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.01-$10.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;55,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;7.0&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.67&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.15pt"&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$10.01-$11.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;15,250&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;4.7&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$10.21&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.15pt"&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$11.01-$12.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;106,250&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;6.5&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$11.72&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$12.01-$13.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;19,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;1.5&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$12.36&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$13.01-$14.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;10,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$13.80&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$16.01-$17.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;10,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;1.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$16.40&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$19.01-$20.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;47,500&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;8.3&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$19.89&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$20.01-$21.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;34,500&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;9.4&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$20.78&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$46.01-$47.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;43,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;9.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$46.99&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.01-$47.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;340,500&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;6.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$18.07&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:FairValueOptionTextBlock contextRef="D240601_250531" id="ixv-6062">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:7.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Risk-free interest rate&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;3.87%&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:7.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;4.00%&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Expected life in years&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;4.2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:7.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;4.3&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Expected volatility &lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;39%&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:7.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;37%&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:4pt"&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;Expected dividend yield&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;0%&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:7.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;0%&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:FairValueOptionTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7841"
      unitRef="Pure">0.0387</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7842"
      unitRef="Pure">0.04</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="D240601_250531" id="ixv-7843">P4Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="D230601_240531" id="ixv-7844">P4Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7845"
      unitRef="Pure">0.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7846"
      unitRef="Pure">0.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7847"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7848"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock contextRef="D240601_250531" id="ixv-6123">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;/td&gt;&lt;td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&lt;b&gt;Shares&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt;border-bottom:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&lt;b&gt;Weighted Average Exercise Price&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-bottom:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&lt;b&gt;Intrinsic Value&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Outstanding - May 31, 2023&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;333,000&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;12.70&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt"&gt;2,016,961&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Options granted&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;85,000&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;34.04&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Less: options exercised&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;76,750&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;12.54&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Less: options expired&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;750&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;-&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Outstanding - May 31, 2024&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;340,500&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt;border-top:0.5pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;18.07&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt"&gt;11,185,815&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Options granted&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;89,800&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;37.24&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Less: options exercised&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;31,000&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;11.51&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;&#160;&#160;&#160;Less: options expired&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;-&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.55pt"&gt;&lt;td style="width:171.2pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Outstanding - May 31, 2025&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-top:0.5pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&lt;b&gt;399,300&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:1.9pt;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:55pt"&gt;22.89&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:62.3pt;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:6pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:56pt"&gt;6,341,305&lt;/kbd&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="I230531"
      decimals="INF"
      id="ixv-7849"
      unitRef="Shares">333000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="I230531"
      decimals="INF"
      id="ixv-7850"
      unitRef="UsdPerShare">12.7</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="I230531"
      decimals="INF"
      id="ixv-7851"
      unitRef="USD">2016961</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7852"
      unitRef="Shares">85000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7853"
      unitRef="UsdPerShare">34.04</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7854"
      unitRef="Shares">76750</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7855"
      unitRef="UsdPerShare">12.54</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7856"
      unitRef="Shares">750</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="D230601_240531"
      decimals="128"
      id="ixv-7857"
      unitRef="UsdPerShare">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="I240531"
      decimals="INF"
      id="ixv-7858"
      unitRef="Shares">340500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="I240531"
      decimals="INF"
      id="ixv-7859"
      unitRef="UsdPerShare">18.07</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="I240531"
      decimals="INF"
      id="ixv-7860"
      unitRef="USD">11185815</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7861"
      unitRef="Shares">89800</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7862"
      unitRef="UsdPerShare">37.24</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7863"
      unitRef="Shares">31000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7864"
      unitRef="UsdPerShare">11.51</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="D240601_250531"
      decimals="128"
      id="ixv-7865"
      unitRef="Shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="D240601_250531"
      decimals="128"
      id="ixv-7866"
      unitRef="UsdPerShare">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="I250531"
      decimals="INF"
      id="ixv-7867"
      unitRef="Shares">399300</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="I250531"
      decimals="INF"
      id="ixv-7868"
      unitRef="UsdPerShare">22.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="I250531"
      decimals="INF"
      id="ixv-7869"
      unitRef="USD">6341305</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock contextRef="D240601_250531" id="ixv-6273">&lt;p style="font:6pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:367.2pt"&gt;&lt;tr&gt;&lt;td colspan="4" style="width:360pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;Outstanding and Exercisable&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;margin-right:-9pt;color:#000000;text-align:center"&gt;Range of Exercise Prices&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Number of Options&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Weighted Average Remaining Years of Contractual Life&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Weighted Average Exercise Price&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.01-$10.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;45,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;5.8&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.71&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.15pt"&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$10.01-$11.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;15,250&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;3.7&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$10.21&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.15pt"&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$11.01-$12.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;99,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;5.4&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$11.72&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.15pt"&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$12.01-$13.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;6,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;1.7&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$12.41&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$13.01-$14.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;10,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;1.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$13.80&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$16.01-$17.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;10,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;0.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$16.40&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$19.01-$20.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;47,500&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;7.3&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$19.89&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$20.01-$21.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;33,750&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;8.4&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$20.78&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$30.01-$31.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;43,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;9.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$30.55&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$43.01-$44.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;46,800&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;9.4&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$43.38&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$46.01-$47.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;43,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;8.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$46.99&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.01-$47.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;399,300&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;6.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$22.89&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The following table summarizes information about stock options outstanding at May 31, 2024:&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:367.2pt"&gt;&lt;tr&gt;&lt;td colspan="4" style="width:360pt;border-bottom:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;Outstanding and Exercisable&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;margin-right:-9pt;color:#000000;text-align:center"&gt;Range of Exercise Prices&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Number of Options&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Weighted Average Remaining Years of Contractual Life&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt;border-top:0.75pt solid #000000" valign="bottom"&gt;&lt;p style="font:9pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;Weighted Average Exercise Price&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.01-$10.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;55,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;7.0&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.67&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.15pt"&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$10.01-$11.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;15,250&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;4.7&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$10.21&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.15pt"&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$11.01-$12.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;106,250&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;6.5&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$11.72&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$12.01-$13.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;19,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;1.5&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$12.36&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$13.01-$14.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;10,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$13.80&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$16.01-$17.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;10,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;1.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$16.40&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$19.01-$20.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;47,500&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;8.3&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$19.89&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$20.01-$21.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;34,500&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;9.4&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$20.78&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$46.01-$47.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;43,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;9.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$46.99&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:144pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$ &#160;9.01-$47.00&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:50.4pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;340,500&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:100.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;6.9&lt;/p&gt;
&lt;/td&gt;&lt;td colspan="2" style="width:72pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="bottom"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$18.07&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001"
      decimals="INF"
      id="ixv-7870"
      unitRef="Shares">45000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001"
      id="ixv-7871">P5Y9M18D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001"
      decimals="INF"
      id="ixv-7872"
      unitRef="UsdPerShare">9.71</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001"
      decimals="INF"
      id="ixv-7873"
      unitRef="Shares">15250</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001"
      id="ixv-7874">P3Y8M12D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001"
      decimals="INF"
      id="ixv-7875"
      unitRef="UsdPerShare">10.21</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001"
      decimals="INF"
      id="ixv-7876"
      unitRef="Shares">99000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001"
      id="ixv-7877">P5Y4M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001"
      decimals="INF"
      id="ixv-7878"
      unitRef="UsdPerShare">11.72</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001"
      decimals="INF"
      id="ixv-7879"
      unitRef="Shares">6000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001"
      id="ixv-7880">P1Y8M12D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001"
      decimals="INF"
      id="ixv-7881"
      unitRef="UsdPerShare">12.41</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001"
      decimals="INF"
      id="ixv-7882"
      unitRef="Shares">10000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001"
      id="ixv-7883">P1Y10M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001"
      decimals="INF"
      id="ixv-7884"
      unitRef="UsdPerShare">13.8</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001"
      decimals="INF"
      id="ixv-7885"
      unitRef="Shares">10000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001"
      id="ixv-7886">P0Y10M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001"
      decimals="INF"
      id="ixv-7887"
      unitRef="UsdPerShare">16.4</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001"
      decimals="INF"
      id="ixv-7888"
      unitRef="Shares">47500</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001"
      id="ixv-7889">P7Y3M18D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001"
      decimals="INF"
      id="ixv-7890"
      unitRef="UsdPerShare">19.89</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100"
      decimals="INF"
      id="ixv-7891"
      unitRef="Shares">33750</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100"
      id="ixv-7892">P8Y4M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100"
      decimals="INF"
      id="ixv-7893"
      unitRef="UsdPerShare">20.78</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N30013100"
      decimals="INF"
      id="ixv-7894"
      unitRef="Shares">43000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N30013100"
      id="ixv-7895">P9Y10M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N30013100"
      decimals="INF"
      id="ixv-7896"
      unitRef="UsdPerShare">30.55</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N43014400"
      decimals="INF"
      id="ixv-7897"
      unitRef="Shares">46800</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N43014400"
      id="ixv-7898">P9Y4M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N43014400"
      decimals="INF"
      id="ixv-7899"
      unitRef="UsdPerShare">43.38</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700"
      decimals="INF"
      id="ixv-7900"
      unitRef="Shares">43000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700"
      id="ixv-7901">P8Y10M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700"
      decimals="INF"
      id="ixv-7902"
      unitRef="UsdPerShare">46.99</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700"
      decimals="INF"
      id="ixv-7903"
      unitRef="Shares">399300</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D240601_250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700"
      id="ixv-7904">P6Y10M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I250531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700"
      decimals="INF"
      id="ixv-7905"
      unitRef="UsdPerShare">22.89</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001"
      decimals="INF"
      id="ixv-7906"
      unitRef="Shares">55000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001"
      id="ixv-7907">P7Y</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N90110001"
      decimals="INF"
      id="ixv-7908"
      unitRef="UsdPerShare">9.67</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001"
      decimals="INF"
      id="ixv-7909"
      unitRef="Shares">15250</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001"
      id="ixv-7910">P4Y8M12D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N100111001"
      decimals="INF"
      id="ixv-7911"
      unitRef="UsdPerShare">10.21</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001"
      decimals="INF"
      id="ixv-7912"
      unitRef="Shares">106250</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001"
      id="ixv-7913">P6Y6M</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N110112001"
      decimals="INF"
      id="ixv-7914"
      unitRef="UsdPerShare">11.72</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001"
      decimals="INF"
      id="ixv-7915"
      unitRef="Shares">19000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001"
      id="ixv-7916">P1Y6M</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N120113001"
      decimals="INF"
      id="ixv-7917"
      unitRef="UsdPerShare">12.36</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001"
      decimals="INF"
      id="ixv-7918"
      unitRef="Shares">10000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001"
      id="ixv-7919">P2Y10M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N130114001"
      decimals="INF"
      id="ixv-7920"
      unitRef="UsdPerShare">13.8</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001"
      decimals="INF"
      id="ixv-7921"
      unitRef="Shares">10000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001"
      id="ixv-7922">P1Y10M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N160117001"
      decimals="INF"
      id="ixv-7923"
      unitRef="UsdPerShare">16.4</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001"
      decimals="INF"
      id="ixv-7924"
      unitRef="Shares">47500</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001"
      id="ixv-7925">P8Y3M18D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N190120001"
      decimals="INF"
      id="ixv-7926"
      unitRef="UsdPerShare">19.89</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100"
      decimals="INF"
      id="ixv-7927"
      unitRef="Shares">34500</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100"
      id="ixv-7928">P9Y4M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N20012100"
      decimals="INF"
      id="ixv-7929"
      unitRef="UsdPerShare">20.78</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700"
      decimals="INF"
      id="ixv-7930"
      unitRef="Shares">43000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700"
      id="ixv-7931">P9Y10M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N46014700"
      decimals="INF"
      id="ixv-7932"
      unitRef="UsdPerShare">46.99</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700"
      decimals="INF"
      id="ixv-7933"
      unitRef="Shares">340500</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="D230601_240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700"
      id="ixv-7934">P6Y10M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="I240531_ShareBasedCompensationSharesAuthUnderStockOptionPlansByExercisePriceRange-N9014700"
      decimals="INF"
      id="ixv-7935"
      unitRef="UsdPerShare">18.07</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock contextRef="D240601_250531" id="ixv-6514">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&lt;span style="color:#000080"&gt;&lt;b&gt;1&lt;/b&gt;&lt;b&gt;4&lt;/b&gt;&lt;b&gt;. &#160;Retirement Plan:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company maintains a retirement plan for essentially all employees pursuant to Section 401(k) of the Internal Revenue Code. &#160;The Company matches a percentage of employee voluntary salary deferrals subject to limitations. &#160;The Company may also make discretionary contributions as determined annually by the Company's Board of Directors. &#160;The amount expensed under the plan was $462,445 and $431,720 for the years ended May 31, 2025 and 2024.&lt;/p&gt;
</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <us-gaap:PensionAndOtherPostretirementBenefitExpense
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7936"
      unitRef="USD">462445</us-gaap:PensionAndOtherPostretirementBenefitExpense>
    <us-gaap:PensionAndOtherPostretirementBenefitExpense
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7937"
      unitRef="USD">431720</us-gaap:PensionAndOtherPostretirementBenefitExpense>
    <us-gaap:FairValueDisclosuresTextBlock contextRef="D240601_250531" id="ixv-6523">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;15. &#160;Fair Value of Financial Instruments:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable, and accrued liabilities approximate fair value because of the short maturity of these instruments.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The fair values of short-term investments were determined as described in Note 1.&lt;/p&gt;
</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:CashFlowSupplementalDisclosuresTextBlock contextRef="D240601_250531" id="ixv-6531">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;16. &#160;Cash Flows Information:&lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:217.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;Interest paid&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;None&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;None&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.3pt"&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.3pt"&gt;&lt;td style="width:217.5pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;Income taxes paid&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;$2,425,000&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$2,010,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:CashFlowSupplementalDisclosuresTextBlock>
    <us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock contextRef="D240601_250531" id="ixv-6534">&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;table style="margin:0 auto;border-collapse:collapse;width:360pt"&gt;&lt;tr&gt;&lt;td style="width:217.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;2025&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;2024&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;Interest paid&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;None&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;None&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.3pt"&gt;&lt;td style="width:217.5pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-top:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:right"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:12.3pt"&gt;&lt;td style="width:217.5pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt; &#160;Income taxes paid&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:center"&gt;&lt;b&gt;$2,425,000&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:67.5pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:center"&gt;$2,010,000&lt;/p&gt;
&lt;/td&gt;&lt;td style="width:3.75pt;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock>
    <us-gaap:InterestPaid
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7938"
      unitRef="USD">0</us-gaap:InterestPaid>
    <us-gaap:InterestPaid
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7939"
      unitRef="USD">0</us-gaap:InterestPaid>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="D240601_250531"
      decimals="INF"
      id="ixv-7940"
      unitRef="USD">2425000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="D230601_240531"
      decimals="INF"
      id="ixv-7941"
      unitRef="USD">2010000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:LegalMattersAndContingenciesTextBlock contextRef="D240601_250531" id="ixv-6595">&lt;p style="font:10pt Times New Roman;margin:0;color:#000080;text-align:justify"&gt;&lt;b&gt;17. &#160;Legal Proceedings: &lt;/b&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Company has been named as a third-party defendant in an action captioned Board of Managers of the 432 Park Condominium, et al. v. 56&lt;span style="vertical-align:super"&gt;th&lt;/span&gt; and Park (NY) Owner LLC, et al. (the &#x201c;Action&#x201d;). &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Action was filed on or about September 23, 2021. In the Action, the Board of Managers of 432 Park Condominium (the &#x201c;Owner&#x201d;), a condominium association for a high-rise condominium building (the &#x201c;Building&#x201d;) located at 432 Park Avenue in New York, N.Y., asserts a claim against the condominium sponsor, 56&lt;span style="vertical-align:super"&gt;th&lt;/span&gt; and Park (NY) Owner LLC (the &#x201c;Sponsor&#x201d;) for damages arising from construction and design defects to the residential and commercial units at the Building. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Sponsor subsequently filed a third-party complaint against LendLease Construction (US) LMB (&#x201c;LendLease&#x201d;) and other parties involved in the Building&#x2019;s design. As to LendLease, the third-party complaint alleges breach of a construction management contract between LendLease and the Sponsor and negligence arising from purported failure to perform under the contract, and seeks indemnification against any damages asserted against the Sponsor by the Owner.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;LendLease subsequently initiated a third-party complaint seeking indemnification from entities with whom LendLease had contracted for the supply of materials and services in connection with construction of the Building. The third-party complaint also &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&lt;span style="font-size:10pt"&gt;names the Company as a third-party defendant based upon a contract between the Company and LendLease to supply 16 Viscous Damping Devices that were incorporated into a Tuned Mass Damper system designed by a third party to limit accelerations of the Building during wind events. The Company has timely filed and served an answer denying the allegations in LendLease&#x2019;s third party complaint.&lt;/span&gt;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;The Action, and all of the related third-party actions, are pending in the Commercial Division of the Supreme Court, New York County. &lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;Discovery relating to the Action remains ongoing and is expected to conclude on or about December 24, 2025, and the deadline to file dispositive motions has been extended to March 11, 2026.&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
&lt;p style="font:10pt Times New Roman;margin:0;color:#000000;text-align:justify"&gt;At present, the Company is unable to determine the likelihood of an unfavorable outcome or to quantify a potential loss.&lt;/p&gt;
</us-gaap:LegalMattersAndContingenciesTextBlock>
    <us-gaap:LossContingencyPartiesJointlyAndSeverallyLiableInLitigation contextRef="D240601_250531" id="ixv-7942">The Company has been named as a third-party defendant </us-gaap:LossContingencyPartiesJointlyAndSeverallyLiableInLitigation>
    <us-gaap:LossContingencyNameOfPlaintiff contextRef="D240601_250531" id="ixv-7943">Board of Managers of the 432 Park Condominium, et al.</us-gaap:LossContingencyNameOfPlaintiff>
    <us-gaap:LossContingencyLawsuitFilingDate1 contextRef="D240601_250531" id="ixv-7944">2021-09-23</us-gaap:LossContingencyLawsuitFilingDate1>
    <us-gaap:LossContingencyAllegations contextRef="D240601_250531" id="ixv-7945">construction and design defects to the residential and commercial units at the Building</us-gaap:LossContingencyAllegations>
    <fil:LossContingencyInestimableLoss2 contextRef="D240601_250531" id="ixv-7946">At present, the Company is unable to determine the likelihood of an unfavorable outcome or to quantify a potential loss</fil:LossContingencyInestimableLoss2>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#fact5"
          xlink:label="fact5"
          xlink:type="locator"/>
        <link:footnote id="Note2" xlink:label="Note2" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Note 2</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact5"
          xlink:to="Note2"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact6"
          xlink:label="fact6"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact6"
          xlink:to="Note2"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact7"
          xlink:label="fact7"
          xlink:type="locator"/>
        <link:footnote id="Note3" xlink:label="Note3" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Note 3</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact7"
          xlink:to="Note3"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact8"
          xlink:label="fact8"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact8"
          xlink:to="Note3"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact9"
          xlink:label="fact9"
          xlink:type="locator"/>
        <link:footnote id="Note4" xlink:label="Note4" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Note 4Note 4</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact9"
          xlink:to="Note4"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact10"
          xlink:label="fact10"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact10"
          xlink:to="Note4"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact11"
          xlink:label="fact11"
          xlink:type="locator"/>
        <link:footnote id="Note5" xlink:label="Note5" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Note 5</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact11"
          xlink:to="Note5"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact12"
          xlink:label="fact12"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact12"
          xlink:to="Note5"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact13"
          xlink:label="fact13"
          xlink:type="locator"/>
        <link:footnote id="Note6" xlink:label="Note6" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Note 6</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact13"
          xlink:to="Note6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact14"
          xlink:label="fact14"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact14"
          xlink:to="Note6"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact15"
          xlink:label="fact15"
          xlink:type="locator"/>
        <link:footnote id="Note10" xlink:label="Note10" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Note 10Note 10</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact15"
          xlink:to="Note10"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact16"
          xlink:label="fact16"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact16"
          xlink:to="Note10"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact17"
          xlink:label="fact17"
          xlink:type="locator"/>
        <link:footnote id="Note8" xlink:label="Note8" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Note 8</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact17"
          xlink:to="Note8"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact18"
          xlink:label="fact18"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact18"
          xlink:to="Note8"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact19"
          xlink:label="fact19"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact19"
          xlink:to="Note4"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact20"
          xlink:label="fact20"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact20"
          xlink:to="Note4"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact21"
          xlink:label="fact21"
          xlink:type="locator"/>
        <link:footnote id="Note9" xlink:label="Note9" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Note 9</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact21"
          xlink:to="Note9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact22"
          xlink:label="fact22"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact22"
          xlink:to="Note9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact23"
          xlink:label="fact23"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact23"
          xlink:to="Note10"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact24"
          xlink:label="fact24"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact24"
          xlink:to="Note10"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact25"
          xlink:label="fact25"
          xlink:type="locator"/>
        <link:footnote id="Note11" xlink:label="Note11" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Note 11Note 11</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact25"
          xlink:to="Note11"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact26"
          xlink:label="fact26"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact26"
          xlink:to="Note11"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact27"
          xlink:label="fact27"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact27"
          xlink:to="Note11"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#fact28"
          xlink:label="fact28"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="fact28"
          xlink:to="Note11"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
